在 Keras 验证模型时,冗长有什么用?

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

在训练模型时冗长有什么用?

262000 次浏览

检查 model.fit 给你的文档。

通过设置详细的0,1或2,你只是说你想“看到”每个纪元的训练进度。

verbose=0不会显示任何东西(静音)

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

progres_bar

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

enter image description here

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

  • Loss : 您的训练数据的丢失函数值
  • Acc : 训练数据的准确性值。

注意: 如果使用正则化机制,则打开它们以避免过度配合。

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

  • Val _ loss : 验证数据的丢失函数值
  • Val _ acc : 验证数据的准确性值

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

例如,在训练模型时使用 verbose有助于检测过度拟合,如果你的 acc持续改善,而你的 val_acc变得更糟。

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

默认情况下,

Verbose = 1,其中包括进度条和每个纪元一行

详细 = 0,表示无声

详细 = 2,每个纪元一行,即纪元号/纪元总数

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

少说点细节... 多说点细节

0 < 2 < 1

默认值是1

对于生产环境,建议使用2

详细信息是您希望如何在您的神经网络训练期间查看其输出的选择。 如果设置 verose = 0,则不会显示任何内容

如果您设置 verose = 1,它将像这样显示输出 时代1/200 55/55[ = = = = = = = = = = = = = = = = = = = = = = = = = = = = ]-10s 307ms/阶梯损耗: 0.56-准确度: 0.4949

如果设置 verose = 2,则输出将类似于 时代1/200 时代2/200 时代3/200