学习率、动量和准确率的3D图

我有一个在Keras中训练的基础神经网络。我正在尝试调整学习率和动量项的影响,并希望绘制一个漂亮的3D图表来可视化学习率和动量对准确率的影响。

我已经成功地使用示例代码绘制了一个三角曲面图,但当我使用自己的数据时,总是遇到错误。示例似乎使用了大约1000个值的numpy数组,而我只有大约6个不同的学习率和动量值,因此我的numpy数组大小为6、6和36。当我尝试使用这些值绘制图表时,我得到了以下错误:

RuntimeError: Error in qhull Delaunay triangulation calculation: singular input data (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_termsy = learning_ratesz = test_accuraciesax = plt.axes(projection='3d')ax.plot_trisurf(x, y, z, cmap='viridis', edgecolor='none');plt.show()

回答:

您提供的数据不足以生成3D图表(参见这个相关的Stack Overflow问题)。您需要传递36、36和36,而不是6、6和36。重新编写您的代码,以便在循环中存储每个动量项和学习率项的组合及其准确率。

因此,您应该有:

x = [0.00001, 0.00001, 0.00001, 0.00001, 0.00001, 0.00001, 0.0001, 0.0001, …. ] 总共36个值来自学习率选择

y = [0.00001,0.0001,0.001,0.01, 0.1, 1, 0.00001, 0.0001,0.001,0.01, 0.1, 1, …. ] 总共36个值来自动量选择

z = 36个准确率的数组,每个上述组合对应一个

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注