在验证模型时,在Keras中使用verbose有什么用?

时间:2017-12-20 09:07:18

标签: python deep-learning keras verbose

我是第一次运行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)

训练模型时使用详细信息有什么用?

6 个答案:

答案 0 :(得分:73)

检查model.fit here的文档。

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

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

verbose=1会向您显示一个动画进度条,如下所示:

progres_bar

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

enter image description here

答案 1 :(得分:5)

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

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

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

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

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

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

例如,在训练模型时使用verbose有助于检测如果acc持续改善而val_acc恶化时发生的过度拟合。

答案 2 :(得分:3)

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

Verbose = 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

答案 3 :(得分:1)

默认详细= 1,

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

verbose = 0,表示沉默

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

答案 4 :(得分:0)

带有详细标志的详细信息顺序为

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

0 <2 <1

默认值为1

对于生产环境,建议2

答案 5 :(得分:0)

verbose 是您希望在训练时如何查看 Nural Network 输出的选项。 如果你设置verbose = 0,它什么都不显示

如果你设置verbose = 1,它会显示这样的输出 纪元1/200 55/55[==============================] - 10 秒 307 毫秒/步 - 损失:0.56 - 准确度:0.4949

如果你设置verbose = 2,输出会像 纪元1/200 纪元 2/200 纪元 3/200