Keras 模型输出信息/日志级别

Eda*_*ame 6 python-3.x keras

我正在使用 Keras 构建神经网络模型:

model_keras = Sequential()
model_keras.add(Dense(4, input_dim=input_num, activation='relu',kernel_regularizer=regularizers.l2(0.01)))
model_keras.add(Dense(1, activation='linear',kernel_regularizer=regularizers.l2(0.01)))
sgd = optimizers.SGD(lr=0.01, clipnorm=0.5)
model_keras.compile(loss='mean_squared_error',  optimizer=sgd)
model_keras.fit(X_norm_train, y_norm_train, batch_size=20, epochs=100)
Run Code Online (Sandbox Code Playgroud)

输出如下所示。我想知道是否有可能消除损失,比如每 10 个时代而不是每个时代?谢谢!

Epoch 1/200
20/20 [==============================] - 0s - loss: 0.2661
Epoch 2/200
20/20 [==============================] - 0s - loss: 0.2625
Epoch 3/200
20/20 [==============================] - 0s - loss: 0.2590
Epoch 4/200
20/20 [==============================] - 0s - loss: 0.2556
Epoch 5/200
20/20 [==============================] - 0s - loss: 0.2523
Epoch 6/200
20/20 [==============================] - 0s - loss: 0.2490
Epoch 7/200
20/20 [==============================] - 0s - loss: 0.2458
Epoch 8/200
20/20 [==============================] - 0s - loss: 0.2427
Epoch 9/200
20/20 [==============================] - 0s - loss: 0.2397
Epoch 10/200
20/20 [==============================] - 0s - loss: 0.2367
Epoch 11/200
20/20 [==============================] - 0s - loss: 0.2338
Epoch 12/200
20/20 [==============================] - 0s - loss: 0.2309
Epoch 13/200
20/20 [==============================] - 0s - loss: 0.2281
Epoch 14/200
20/20 [==============================] - 0s - loss: 0.2254
Epoch 15/200
20/20 [==============================] - 0s - loss: 0.2228
   :
Run Code Online (Sandbox Code Playgroud)

Ale*_*kiy 6

不可能减少记录到标准输出的频率,但是,将verbose=0参数传递给fit()方法会完全关闭记录。

由于循环周期未在 Keras 的顺序模型中公开,因此使用自定义频率收集标量变量摘要的一种方法是使用 Keras回调。特别是,您可以使用TensorBoard(假设您使用tensorflow后端运行)或CSVLogger(任何后端)回调来收集任何标量变量摘要(在您的情况下是训练损失):

from keras.callbacks import TensorBoard

model_keras = Sequential()
model_keras.add(Dense(4, input_dim=input_num, activation='relu',kernel_regularizer=regularizers.l2(0.01)))
model_keras.add(Dense(1, activation='linear',kernel_regularizer=regularizers.l2(0.01)))
sgd = optimizers.SGD(lr=0.01, clipnorm=0.5)
model_keras.compile(loss='mean_squared_error',  optimizer=sgd)

TB = TensorBoard(histogram_freq=10, batch_size=20)

model_keras.fit(X_norm_train, y_norm_train, batch_size=20, epochs=100, callbacks=[TB])
Run Code Online (Sandbox Code Playgroud)

设置histogram_freq=10将每 10 个 epoch 保存一次损失。

编辑:传递validation_data=(...)给该fit方法还将允许检查验证级别指标。