如何使用 TensorBoard write_grads 函数?
How to use TensorBoard write_grads function?
我正在使用 keras 训练我的 3 层序列模型,并想在 TensorBoard 中可视化梯度直方图。为此,keras.callbacks.Tensorboard 中有函数 "write_grads",如果您定义 histogram_freq 大于 0 (keras docu),该函数应该起作用。我做了什么:
### tensorboard call
callback_tb = keras.callbacks.TensorBoard(log_dir="logs/"+ name, write_graph = True, write_grads = True, histogram_freq=10 )
### some other callbacks
reduce_lr = keras.callbacks.ReduceLROnPlateau(monitor='val_loss', factor=0.2, patience=10, min_lr=0.001, verbose = 1)
early = keras.callbacks.EarlyStopping(monitor='val_loss', min_delta=5, patience=10, verbose=1, mode='auto')
checkpointer = keras.callbacks.ModelCheckpoint(filepath='tmp/'+name+'.hdf5', verbose=1, save_best_only=True)
### model fit
model.fit(
X_train, y_train,
batch_size=1, nb_epoch=epochs, validation_split=0.05, verbose = 1,class_weight ={0: 1, 1: 0.5}, callbacks = [callback_tb, reduce_lr, early, checkpointer])
我有这个模型配置:
model = Sequential()
layers = [1, 100, 100, 100, 1]
model.add(GRU(
layers[1],
#batch_size = 209,
input_shape=(sequence_length, anzahl_features),
return_sequences=True))
model.add(Dropout(dropout_1))
model.add(LSTM(
layers[2],
#batch_size = 209,
return_sequences=True))
model.add(Dropout(dropout_2))
model.add(GRU(
layers[3],
#batch_size = 209,
return_sequences=False))
model.add(Dropout(dropout_3))
model.add(Dense(
layers[4]))
model.add(Activation('sigmoid'))
print(model.summary())
我收到的错误消息如下:
TypeError: init() got an unexpected keyword argument 'write_grads'
我的配置有问题吗?我可以使用这个模型并获得
梯度直方图?还是这些直方图仅适用于特定类型的模型?
您需要将 Keras 升级到最新版本 (2.0.5)。以前的版本不支持 write_grads 参数。
pip 安装 keras --升级
write_grads
似乎被贬低了。 Here 它不在回调的参数中,并且在 githubs 上有一个取消弃用它的请求。
我正在使用 keras 训练我的 3 层序列模型,并想在 TensorBoard 中可视化梯度直方图。为此,keras.callbacks.Tensorboard 中有函数 "write_grads",如果您定义 histogram_freq 大于 0 (keras docu),该函数应该起作用。我做了什么:
### tensorboard call
callback_tb = keras.callbacks.TensorBoard(log_dir="logs/"+ name, write_graph = True, write_grads = True, histogram_freq=10 )
### some other callbacks
reduce_lr = keras.callbacks.ReduceLROnPlateau(monitor='val_loss', factor=0.2, patience=10, min_lr=0.001, verbose = 1)
early = keras.callbacks.EarlyStopping(monitor='val_loss', min_delta=5, patience=10, verbose=1, mode='auto')
checkpointer = keras.callbacks.ModelCheckpoint(filepath='tmp/'+name+'.hdf5', verbose=1, save_best_only=True)
### model fit
model.fit(
X_train, y_train,
batch_size=1, nb_epoch=epochs, validation_split=0.05, verbose = 1,class_weight ={0: 1, 1: 0.5}, callbacks = [callback_tb, reduce_lr, early, checkpointer])
我有这个模型配置:
model = Sequential()
layers = [1, 100, 100, 100, 1]
model.add(GRU(
layers[1],
#batch_size = 209,
input_shape=(sequence_length, anzahl_features),
return_sequences=True))
model.add(Dropout(dropout_1))
model.add(LSTM(
layers[2],
#batch_size = 209,
return_sequences=True))
model.add(Dropout(dropout_2))
model.add(GRU(
layers[3],
#batch_size = 209,
return_sequences=False))
model.add(Dropout(dropout_3))
model.add(Dense(
layers[4]))
model.add(Activation('sigmoid'))
print(model.summary())
我收到的错误消息如下:
TypeError: init() got an unexpected keyword argument 'write_grads'
我的配置有问题吗?我可以使用这个模型并获得 梯度直方图?还是这些直方图仅适用于特定类型的模型?
您需要将 Keras 升级到最新版本 (2.0.5)。以前的版本不支持 write_grads 参数。
pip 安装 keras --升级
write_grads
似乎被贬低了。 Here 它不在回调的参数中,并且在 githubs 上有一个取消弃用它的请求。