Python 在验证模型时,Keras中的verbose有什么用途?

Python 在验证模型时,Keras中的verbose有什么用途?,python,deep-learning,keras,verbose,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.permutatio

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

通过设置详细的0、1或2,您只需说出希望如何“查看”每个历元的培训进度

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

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

verbose=2
只会提到历元数,如下所示:


对于
详细
>0,
fit
方法日志:

  • 损失:训练数据的损失函数值
  • acc:训练数据的准确度值
注意:如果使用正则化机制,则会启用它们以避免过拟合

如果
validation\u data
validation\u split
参数不为空,
fit
方法日志:

  • val_loss:验证数据的损失函数值
  • val_acc:验证数据的准确度值
注意:正则化机制在测试时关闭,因为我们正在使用网络的所有功能


例如,在训练模型时使用
verbose
有助于检测过度拟合,如果
acc
不断改善,而
val\u acc
变得更差,则会发生过度拟合。

verbose:Integer
。0、1或2。冗长模式

详细=0(无提示)

详细信息=1(进度条)

详细=2(每个历元一行)


默认情况下,verbose=1

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

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=0,表示无提示


verbose=2,每个历元一行,即历元编号/历元总数

带有verbose标志的详细信息顺序如下

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

0<2<1

默认值为1


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

详细是您希望在Nural网络进行培训时如何查看其输出的选择。 如果将verbose设置为0,它将不显示任何内容

如果设置verbose=1,它将显示如下输出 纪元1/200 55/55[=================================]-10s 307ms/步-损耗:0.56-精度:0.4949

如果将verbose设置为2,则输出如下 纪元1/200 纪元2/200
纪元3/200

详细:整数。0、1或2。冗长模式。0=无提示,1=进度条,2=每个历元一行。谢谢@ank you rock.。这个评论是这个问题的最佳答案,甚至比被评论的答案更好。注意这一点,尽量避免使用单词,只是为了让答案更长@拉凯什,你太棒了。规则化和冗余参数有什么关系?!详细参数对正则化机制没有影响。我只是添加了关于启用verbose时显示内容的信息(以回答最初的问题“训练模型时使用verbose有什么用?”=>例如:通过比较acc和val_acc避免过度拟合)。您能解释一下为什么我没有获得不同verbose变量的预期输出吗。我的文件的verbose=0和2得到了相同的[silent]输出?对于verbose=1,我只在10/10-21s这样的时代结束时才得到进度条-损失:0.2354-acc:0.9286-val_损失:0.2206-val_acc:0.9344[=============================================]准确度:0.9344错误:6.560000000000002伟大的答案,帮了我一把。适用于tensorflow 2.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