验证模型时,Keras中的详细用法是什么?


89

我是第一次运行LSTM模型。这是我的模型:

opt = Adam(0.002)
inp = Input(...)
print(inp)
x = Embedding(....)(inp)
x = LSTM(...)(x)
x = BatchNormalization()(x)
pred = Dense(5,activation='softmax')(x)

model = Model(inp,pred)
model.compile(....)

idx = np.random.permutation(X_train.shape[0])
model.fit(X_train[idx], y_train[idx], nb_epoch=1, batch_size=128, verbose=1)

训练模型时,冗长的用法是什么?

Answers:


210

在此处查看有关model.fit的文档。

通过设置详细的0、1或2,您只需说出您想如何“看到”每个时期的训练进度。

verbose=0 不会显示任何内容(无声)

verbose=1 将显示如下动画进度条:

progres_bar

verbose=2 只会提到这样的纪元数:

在此处输入图片说明


20
详细:Integer。0、1或2。详细模式。0 =静音,1 =进度条,2 =每个时期一行。谢谢@ank你摇滚..
rakesh

2
此评论是对问题的最佳答案,甚至比被评论的答案还要好。请注意这一点,并尽量避免使用单词,以使答案更长。@rakesh,你摇滚。
康斯坦丁·塞克雷什

19

verbose: Integer。0、1或2。详细模式。

详细== 0(无声)

详细== 1(进度条)

Train on 186219 samples, validate on 20691 samples
Epoch 1/2
186219/186219 [==============================] - 85s 455us/step - loss: 0.5815 - acc: 
0.7728 - val_loss: 0.4917 - val_acc: 0.8029
Train on 186219 samples, validate on 20691 samples
Epoch 2/2
186219/186219 [==============================] - 84s 451us/step - loss: 0.4921 - acc: 
0.8071 - val_loss: 0.4617 - val_acc: 0.8168

详细= 2(每个时期一行)

Train on 186219 samples, validate on 20691 samples
Epoch 1/1
 - 88s - loss: 0.5746 - acc: 0.7753 - val_loss: 0.4816 - val_acc: 0.8075
Train on 186219 samples, validate on 20691 samples
Epoch 1/1
 - 88s - loss: 0.4880 - acc: 0.8076 - val_loss: 0.5199 - val_acc: 0.8046

您能解释一下为什么我没有得到详细的不同字词的预期输出吗?我的文件的详细= 0和2会得到相同的[silent]输出?对于verbose = 1,我只会在像纪元10/10-21s这样的纪元结束时获得进度条-损失:0.2354-acc:0.9286-val_loss:0.2206-val_acc:0.9344 [======== [=====================]准确度:0.9344错误:6.560000000000002
Nisha Arora博士

很好的答案,帮助了我。适用于tensorflow 2.2
Bobs Burgers

9

对于verbose> 0,fit方法日志:

  • 损失:训练数据的损失函数值
  • acc:您的训练数据的准确性值。

注意:如果使用正则化机制,则将其打开以避免过度拟合。

如果validation_datavalidation_split参数不为空,则fit方法日志:

  • val_loss:验证数据的损失函数值
  • val_acc:验证数据的准确性值

注意:由于我们正在使用网络的所有功能,因此在测试时会关闭正则化机制。

例如,verbose在训练时使用模型可以帮助检测过度拟合,如果您在acc不断val_acc恶化的情况下不断改进,则会发生过度拟合。


正则化与详细程度参数有什么关系?
克里斯吉'18

详细参数对正则化机制没有影响。我只是添加有关启用了verbose的显示内容的信息(回答最初的问题“训练模型时verbose的用途是什么?” =>例如:通过比较acc和val_acc避免过度拟合)。
Hugo Bevilacqua '18

1

默认情况下,详细= 1,

详细= 1,其中包括进度条和每个时期一行

详细= 0,表示无声

详细= 2,每个纪元一行,即纪元编号/总编号 时代


0

详细标志提供的详细信息顺序如下

更少的细节...。更多细节

0 <2 <1

默认为1

对于生产环境,建议2

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.