【发布时间】:2018-03-16 23:13:44
【问题描述】:
我有一个在 Keras 中训练过的基本神经网络。我正在研究学习率和动量项的影响,我想绘制一个漂亮的 3d 图来可视化学习率和动量对准确性的影响。
我已经成功地使用示例代码绘制了一个 trisurf 图,但是每当我使用自己的数据时,我都会遇到错误。这些示例似乎使用了大约 1000 个值的 numpy 数组,而我只有大约 6 个不同的学习率和动量值,给了我大小为 6、6 和 36 的 numpy 数组。当我尝试使用这些值绘制图形时,我得到以下错误:
RuntimeError: qhull Delaunay 三角测量计算错误: 奇异输入数据(exitcode=2)
我不理解此错误消息,以及为什么它适用于示例数据,但不适用于我自己的数据。有什么建议吗?
我的代码如下:
momentum_terms = np.array([0.00001,0.0001,0.001,0.01, 0.1, 1])
learning_rates = np.array([0.00001,0.0001,0.001,0.01, 0.1, 1])
train_accuracies = np.empty([36])
test_accuracies = np.empty([36])
for learning_rate in learning_rates:
for momentum in momentum_terms:
model = Sequential()
model.add(Dense(18, activation='relu', input_shape = (2,)))
model.add(Dense(18, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.summary()
model.compile(loss='binary_crossentropy',
optimizer=SGD(lr = learning_rate, momentum = momentum),
metrics=[binary_accuracy])
history = model.fit(x_train, y_train,
batch_size=batch_size,
epochs=epochs,
verbose=1,
validation_data=(x_test, y_test))
score = model.evaluate(x_test, y_test, verbose=0)
np.append(train_accuracies, history.history['binary_accuracy'][-1] * 100)
np.append(test_accuracies, history.history['val_binary_accuracy'][-1] * 100)
x = momentum_terms
y = learning_rates
z = test_accuracies
ax = plt.axes(projection='3d')
ax.plot_trisurf(x, y, z, cmap='viridis', edgecolor='none');
plt.show()
【问题讨论】:
标签: python matplotlib machine-learning neural-network keras