#python #matplotlib #deep-learning #neural-network #loss-function
Вопрос:
Представьте, что у меня есть простая нейронная сеть, подобная этой, с функцией потерь, являющейся средней абсолютной ошибкой, и оптимизатором, являющимся адамом:
model = Sequential()
model.add(LSTM(32, input_shape=(64, 10), return_sequences=True))
model.add(TimeDistributed(Dense(1)))
model.compile(loss='mae', optimizer='adam', metrics=["accuracy"])
model.fit(X_train, y_train, epochs=100, validation_data=(X_test, y_test)
...
y_pred = model.predict(X_test)
y_pred = sc.inverse_transform(y_pred)
y_test = sc.inverse_transform(y_test)
Здесь у меня есть пример кода того, как построить поверхность:
# Creating dataset
x = np.outer(np.linspace(-3, 3, 32), np.ones(32))
y = x.copy().T # transpose
z = (np.sin(x **2) np.cos(y **2) )
# Plot
fig = plt.figure(figsize =(14, 9))
ax = plt.axes(projection ='3d')
ax.plot_surface(x, y, z)
Как я могу построить 3D-поверхность потерь/ошибок нейронной сети и путь оптимизатора (градиентного спуска) с использованием этого формата?
Комментарии:
1. Какой интерфейс NN вы используете: TF2/Keras/Torch?
2. Я использую tensorflow.keras, версия 2.5.0
3. Что вы намерены увидеть в виде X, y и z на 3D-графике потерь?
4. Я предполагаю, что x=y_test, y=y_pred и z будут функцией потерь, но я не знаю, является ли это правильным способом визуализации поверхности потерь нейронной сети.