【问题标题】:selecting keras regression model for 3 input and 1 output为 3 个输入和 1 个输出选择 keras 回归模型
【发布时间】:2019-10-08 00:07:43
【问题描述】:

这是我的 excel 数据散点图。我的神经网络模型有 3 个输入和 1 个输出,在 excel 中总共有 4 列。和 200 行。数据已标准化。

所以我有一个 keras 模型如下:

def create_model():
    ann_model = Sequential()
    ann_model.add(Dense(120, input_dim=3, kernel_initializer='normal', activation='tanh'))
    ann_model.add(Dense(60, activation='tanh'))
    ann_model.add(Dense(1, activation='linear'))
    return ann_model

original_inputs = read_inputs(r'train_cd.xlsx')
original_outputs = read_outputs(r'train_cd.xlsx')

model = create_model()

sgd = SGD(lr=0.001, decay=1e-6, momentum=0.9, nesterov=True)

model.compile(loss='mean_squared_error', optimizer='adam', metrics=['mse', 'accuracy'])

model.fit(original_inputs, original_outputs, batch_size=10, epochs=1800, verbose=False, shuffle=False)

test_result = model.predict(original_inputs)

# ----------Plot---------------------------------------------
plt.plot(original_outputs, label="y-original")
plt.plot(test_result, label="y-predicted")
plt.legend()
plt.show()
# -----------------------------------------------------------

但是这个训练结果并不接近 %100 的准确率。如何更改模型隐藏层节点或其他?我想获得接近 100% 的高精度。

【问题讨论】:

    标签: python tensorflow keras neural-network


    【解决方案1】:

    为了提高你的准确性,你可以尝试不同的东西:

    • 添加更多层并使用它们的神经元数量
      -> 有了更多的层和更多的神经元,模型可以学习更高层次的模式

    • 打印模型损失和准确度历史并查看曲线的样子(增加/减少快/慢,如果您限制或模型尚未完成学习 -> 更多时期等)

    • 使用批量大小,更改优化器,尝试不同的激活函数

    希望对你有帮助

    【讨论】:

    • 模型历史有 3 个键 ['loss', 'mean_squared_error', 'acc'] 和 acc 数组具有相同的值 (0.12299465304389995)
    • 但这是一个时间序列数据。有关系吗?我应该修改我的代码吗?
    猜你喜欢
    • 2018-01-16
    • 2019-08-30
    • 1970-01-01
    • 2018-05-20
    • 2019-04-08
    • 1970-01-01
    • 2020-01-22
    • 2016-01-07
    • 2016-08-28
    相关资源
    最近更新 更多