【问题标题】:CNN Training Early StoppingCNN 培训提前停止
【发布时间】:2017-12-29 04:27:06
【问题描述】:

我正在使用 CNN 进行信号分类。(两类:患者和控制)。 使用提前停止,我想停止训练,直到验证错误停止改善。我无法编写 python 代码来实现这一点。 我试过了,但无法继续。

validation = cross_entropy.eval(feed_dict= {x:valid_x,y_:valid_y,keep_prob:1})
validation = np.append(validation,cross_entropy.eval(feed_dict= {x:valid_x,y_:valid_y,keep_prob:1}))

谁能帮我写代码?

【问题讨论】:

    标签: python validation tensorflow training-data


    【解决方案1】:

    你可以使用keras.EarlyStopping:

    from keras.callbacks import EarlyStopping
    early_stopping = EarlyStopping(monitor='val_loss', patience=2)
    model.fit(x, y, validation_split=0.2, callbacks=[early_stopping])
    

    理想情况下,最好在val_loss 增加而不是在val_acc 停滞时停止训练。由于 Kears 会在 val_acc 改进时保存模型,因此我建议您让它运行并仅在需要时停止。

    【讨论】:

    • 感谢 Ganesh!我不明白如何为 model.fit 提供输入。我有训练数据:train_x、训练标签:train_y、验证数据:valid_x 和验证标签:valid_y。我在 Keras model.fit 中实现了如下所示,但出现错误。我在后端使用 tensorflow。请帮我。 model_info = model.fit(train_x, train_y, validation_data = (valid_x,valid_y), callbacks=[early_stopping]) NameError: name 'model' is not defined
    • 鉴于信号是基于时间的,我不是专家,但我觉得像 RNN 和 LSTM 这样的东西会更好,看看这里:philipperemy.github.io/keras-stateful-lstm。那么如果你仍然需要 CNN 看看这个例子,看看你是否做了同样的事情:github.com/keunwoochoi/kapre/blob/master/examples/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 2019-07-10
    • 2021-08-23
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    相关资源
    最近更新 更多