验证模型时,在 Keras 中使用 verbose 有什么用?
What is the use of verbose in Keras while validating the model?
我是 运行 第一次使用 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)
训练模型时verbose有什么用?
检查 model.fit here.
的文档
通过设置 verbose 0、1 或 2,您只需说出您希望如何 'see' 每个时期的训练进度。
verbose=0
什么都不显示(无声)
verbose=1
将显示一个动画进度条,如下所示:
verbose=2
只会提到这样的纪元数:
对于 verbose
> 0,fit
方法日志:
- loss:训练数据的损失函数值
- acc:训练数据的准确度值。
注意:如果使用了正则化机制,则开启它们以避免过拟合。
如果 validation_data
或 validation_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
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
默认详细 = 1,
verbose = 1,其中包括进度条和每个 epoch 一行
verbose = 0,表示无声
verbose = 2,每个纪元一行,即纪元号/总号。时代
详细标志提供的详细信息顺序如下
Less details.... More details
0 < 2 < 1
默认为 1
生产环境推荐2
详细是您希望在训练时如何查看神经网络输出的选择。
如果你设置 verbose = 0,它什么也不会显示
如果你设置verbose = 1,它会显示这样的输出
纪元 1/200
55/55[==============================] - 10 秒 307 毫秒/步 - 损失:0.56 - 精度:0.4949
如果你设置 verbose = 2,输出会像
纪元 1/200
时代 2/200
纪元 3/200
我是 运行 第一次使用 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)
训练模型时verbose有什么用?
检查 model.fit here.
的文档通过设置 verbose 0、1 或 2,您只需说出您希望如何 'see' 每个时期的训练进度。
verbose=0
什么都不显示(无声)
verbose=1
将显示一个动画进度条,如下所示:
verbose=2
只会提到这样的纪元数:
对于 verbose
> 0,fit
方法日志:
- loss:训练数据的损失函数值
- acc:训练数据的准确度值。
注意:如果使用了正则化机制,则开启它们以避免过拟合。
如果 validation_data
或 validation_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
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
默认详细 = 1,
verbose = 1,其中包括进度条和每个 epoch 一行
verbose = 0,表示无声
verbose = 2,每个纪元一行,即纪元号/总号。时代
详细标志提供的详细信息顺序如下
Less details.... More details
0 < 2 < 1
默认为 1
生产环境推荐2
详细是您希望在训练时如何查看神经网络输出的选择。 如果你设置 verbose = 0,它什么也不会显示
如果你设置verbose = 1,它会显示这样的输出 纪元 1/200 55/55[==============================] - 10 秒 307 毫秒/步 - 损失:0.56 - 精度:0.4949
如果你设置 verbose = 2,输出会像 纪元 1/200 时代 2/200 纪元 3/200