【问题标题】:Keras model not learningKeras模型不学习
【发布时间】:2018-02-25 02:54:25
【问题描述】:

我的 Keras 模型没有学到任何东西,我不知道为什么。我什至将训练集大小减少到 5 个元素,但模型仍然不适合训练数据。

loss function visualized with TensorBoard

这是我的代码:

model = Sequential()
model.add(Conv1D(30, filter_length=3, activation='relu', input_shape=(50, 1)))
model.add(Conv1D(40, filter_length=(3), activation='relu'))
model.add(Conv1D(120, filter_length=(3), activation='relu'))
model.add(Flatten())
model.add(Dense(1024, activation='relu'))
model.add(Dense(256, activation='relu'))
model.add(Dense(32, activation='relu'))
model.add(Dense(1, activation='relu'))
model.summary()
model.compile(loss='mse',
              optimizer=keras.optimizers.adam())


train_limit = 5 
batch_size = 4096 
tb = keras.callbacks.TensorBoard(log_dir='./logs/' + run_name + '/', 
    histogram_freq=0, write_images=False)
tb.set_model(model)
model.fit(X_train[:train_limit], y_train[:train_limit],
          batch_size=batch_size,
          nb_epoch=10**4,
          verbose=0,
          validation_data=(X_val[:train_limit], y_val[:train_limit]),
          callbacks=[tb])
score = model.evaluate(X_test, y_test, verbose=0)
print('Test loss:', score)
print('Test accuracy:', score)

非常感谢任何帮助!

【问题讨论】:

    标签: python machine-learning tensorflow deep-learning keras


    【解决方案1】:

    这似乎是一个回归问题。我注意到的一件事是你的最后一层仍然有 ReLU 激活函数。我建议在最后一层取出 ReLU。

    【讨论】:

      【解决方案2】:

      模型的最后一层有relu 激活。相反,它应该有一个sigmoid 激活函数,因为它是一个二元分类问题。如果是多类分类问题,你应该在这种情况下使用softmax激活。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-21
        • 1970-01-01
        • 2018-02-03
        • 2018-09-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-20
        相关资源
        最近更新 更多