簡體   English   中英

如何使用 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 () 得到了一個意外的關鍵字參數 'write_grads'

我的配置有問題嗎? 我可以使用這個模型並獲得梯度直方圖嗎? 或者那些直方圖僅適用於某種類型的模型?

您需要將 Keras 升級到最新版本 (2.0.5)。 以前的版本不支持 write_grads 參數。

pip 安裝 keras --upgrade

write_grads似乎已被棄用。 這里它不在回調的參數中,並且在 githubs 上有一個取消棄用它的請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM