keras 提取最佳值损失

汤米于

网络就像

inp=Input((1,12))
dense0=GRU(200,activation='relu',recurrent_dropout=0.2,return_sequences=True)(inp)
drop0=Dropout(0.3)(dense1)
dense1=GRU(200,activation='relu',recurrent_dropout=0.2)(drop0)
drop1=Dropout(0.3)(dense1)
dense1=Dense(200,activation='relu')(inp)
drop1=Dropout(0.3)(dense1)
dense2=Dense(200,activation='relu')(drop1)
drop2=Dropout(0.3)(dense2)
dense3=Dense(100,activation='relu')(drop2)
drop3=Dropout(0.3)(dense3)
out=Dense(6,activation='relu')(drop2)

md=Model(inputs=inp,outputs=out)
##md.summary()
opt=keras.optimizers.rmsprop(lr=0.000005)
md.compile(opt,loss='mean_squared_error')
esp=EarlyStopping(patience=90, verbose=1, mode='auto')
md.fit(x_train.reshape((8105,1,12)),y_train.reshape((8105,1,6)),batch_size=2048,epochs=1500,callbacks=[esp], validation_split=0.2)

输出:

    Epoch 549/1500
    6484/6484 [==============================] - 0s 13us/step - loss: 0.0589 - val_loss: 0.0100
    Epoch 550/1500
    6484/6484 [==============================] - 0s 10us/step - loss: 0.0587 - val_loss: 0.0099
    Epoch 551/1500
    6484/6484 [==============================] - 0s 12us/step - loss: 0.0584 - val_loss: 0.0100
    Epoch 552/1500
    6484/6484 [==============================] - 0s 12us/step - loss: 0.0593 - val_loss: 0.0100
    Epoch 553/1500
    6484/6484 [==============================] - 0s 12us/step - loss: 0.0584 - val_loss: 0.0100
    Epoch 554/1500
    6484/6484 [==============================] - 0s 15us/step - loss: 0.0587 - val_loss: 0.0101
    Epoch 555/1500
    6484/6484 [==============================] - 0s 12us/step - loss: 0.0583 - val_loss: 0.0100
    Epoch 556/1500
    6484/6484 [==============================] - 0s 13us/step - loss: 0.0578 - val_loss: 0.0101
    Epoch 557/1500
    6484/6484 [==============================] - 0s 12us/step - loss: 0.0578 - val_loss: 0.0101
    Epoch 558/1500
    6484/6484 [==============================] - 0s 14us/step - loss: 0.0578 - val_loss: 0.0100
    Epoch 559/1500
    6484/6484 [==============================] - 0s 13us/step - loss: 0.0573 - val_loss: 0.0099
    Epoch 560/1500
    6484/6484 [==============================] - 0s 13us/step - loss: 0.0577 - val_loss: 0.0099
    Epoch 561/1500
    6484/6484 [==============================] - 0s 14us/step - loss: 0.0570 - val_loss: 0.0100
    Epoch 562/1500
    6484/6484 [==============================] - 0s 12us/step - loss: 0.0567 - val_loss: 0.0100
    Epoch 563/1500
    6484/6484 [==============================] - 0s 15us/step - loss: 0.0575 - val_loss: 0.0100
Epoch 00563: early stopping

最好的迭代在这里:

Epoch 473/1500
6484/6484 [==============================] - 0s 12us/step - loss: 0.0698 - val_loss: 0.0096

我如何提取这个分数 0.0096,例如作为贝叶斯优化或 SMAC 的评分输出?(即给定 md,我需要 md.min_val_loss())我试过:

    print(md.history.keys())
Traceback (most recent call last):

  File "<ipython-input-100-d1e5bda1287c>", line 1, in <module>
    print(md.history.keys())

AttributeError: 'History' object has no attribute 'keys'




print(md.history['val_loss'])
Traceback (most recent call last):

  File "<ipython-input-101-37ce8f0572c5>", line 1, in <module>
    print(md.history['val_loss'])

TypeError: 'History' object is not subscriptable

显然它不起作用。顺便说一句,我可以根据最佳迭代进行预测吗?类似于: md.predict(new_data, iteration=473)

登林格

Keras 允许您只存储最佳模型的结果,这可能是您正在寻找的:
您可以简单地将另一个回调传递给您的.fit()调用,如下所示:

checkpoint = ModelCheckpoint("keras_model.pt", monitor='val_loss', save_best_only=True)
model.fit(...., callbacks=[...,checkpoint]) # attach callback to training!

这样,您可以在训练完成后重新加载模型,并从那里进行预测。至于之后如何检索值的问题,请查看SO上的这篇文章也就是说,只需创建自己的History()(重读这句话后我不得不笑)。

from keras.callbacks import History
history = History()
hist = model.fit(..., callbacks=[...,history])
print(hist.history)

要访问特定时期的损失,请执行hist.history['val_loss'][<epoch>]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Keras图像分类损失

来自分类Dev

Keras LSTM 常数损失

来自分类常见问题

如何根据损失值告诉Keras停止训练?

来自分类Dev

自定义keras损失

来自分类Dev

Keras:如何记录验证损失

来自分类Dev

Keras损失函数理解

来自分类Dev

keras 对损失函数应用阈值

来自分类Dev

Kotlin:具有最佳值的maxBy {}

来自分类Dev

什么是Phusion旅客PassengerMaxRequestQueueSize的最佳值

来自分类Dev

Keras VGGFace 提取特征

来自分类Dev

根据损失的 Keras 示例记录每个批次的 Keras 指标

来自分类Dev

Keras上的自定义损失功能

来自分类Dev

在Keras建立自定义损失

来自分类Dev

Keras Nan计算损失时的价值

来自分类Dev

Keras 中自定义损失的输出

来自分类Dev

如何在 Keras 中列出模型的损失?

来自分类Dev

Keras,计算 LSTM 上输入的损失梯度

来自分类Dev

如果我开始训练损失函数的值很大的keras模型,这有关系吗

来自分类Dev

即使 keras 中的准确度为 1.00,categorical_crossentropy 也会返回小的损失值

来自分类Dev

keras 自定义损失函数转换为张量时的值错误

来自分类Dev

Keras Python 自定义损失函数给出张量(的绝对差值)的最大值?

来自分类Dev

确定CUDA中#pragma展开N的最佳值

来自分类Dev

将?x样式模式变量转换为最佳值

来自分类Dev

如何设置伽玛校正的最佳值

来自分类Dev

如何在FourierSeries中优化“ k”的最佳值

来自分类Dev

将?x样式模式变量转换为最佳值

来自分类Dev

使用Apply找到7个常数的最佳值?

来自分类Dev

Keras中的自定义损失函数应该返回该批次的单个损失值,还是返回该训练批次中每个样本的大量损失?

来自分类Dev

KERAS低拟合损失和高损失评估

Related 相关文章

热门标签

归档