web-dev-qa-db-ja.com

KerasのTensorboardコールバックをどうやって使うのですか?

私はKerasとニューラルネットワークを構築しました。 Tensorboardでそのデータを視覚化するので、私は利用しました:

keras.callbacks.TensorBoard(log_dir='/Graph', histogram_freq=0,
                            write_graph=True, write_images=True)

keras.io で説明されているように。コールバックを実行すると<keras.callbacks.TensorBoard at 0x7f9abb3898>が表示されますが、フォルダ "Graph"にはファイルが表示されません。このコールバックの使用方法に何か問題がありますか?

113
Simone
keras.callbacks.TensorBoard(log_dir='./Graph', histogram_freq=0,  
          write_graph=True, write_images=True)

この行は、Callback Tensorboardオブジェクトを作成します。そのオブジェクトをキャプチャして、それをモデルのfit関数に渡します。

tbCallBack = keras.callbacks.TensorBoard(log_dir='./Graph', histogram_freq=0, write_graph=True, write_images=True)
...
model.fit(...inputs and parameters..., callbacks=[tbCallBack])

このようにしてコールバックオブジェクトを関数に渡しました。これはトレーニング中に実行され、テンソルボードで使用できるファイルを出力します。

トレーニング中に作成されたファイルを視覚化したい場合は、端末で実行してください。

tensorboard --logdir path_to_current_dir/Graph 

お役に立てれば !

192
Nassim Ben

これが TensorBoardコールバック の使い方です。

from keras.callbacks import TensorBoard

tensorboard = TensorBoard(log_dir='./logs', histogram_freq=0,
                          write_graph=True, write_images=False)
# define model
model.fit(X_train, Y_train,
          batch_size=batch_size,
          epochs=nb_Epoch,
          validation_data=(X_test, Y_test),
          shuffle=True,
          callbacks=[tensorboard])
40
Martin Thoma

変化する

keras.callbacks.TensorBoard(log_dir='/Graph', histogram_freq=0,  
          write_graph=True, write_images=True)

tbCallBack = keras.callbacks.TensorBoard(log_dir='Graph', histogram_freq=0,  
          write_graph=True, write_images=True)

モデルを設定

tbCallback.set_model(model)

端末で実行する

tensorboard  --logdir Graph/
17
Leandro Souza

Kerasライブラリを使用していて、テンソルボードを使用して精度のグラフやその他の変数を印刷したい場合は、以下の手順に従ってください。

ステップ1:以下のコマンドを使用して、テンソルボードをインポートするようにkerasコールバックライブラリを初期化します。

from keras.callbacks import TensorBoard

ステップ2: "model.fit()"コマンドの直前に、下記のコマンドをプログラムに含めます。

tensor_board = TensorBoard(log_dir='./Graph', histogram_freq=0, write_graph=True, write_images=True)

注: "./graph"を使用してください。それはあなたの現在の作業ディレクトリにグラフフォルダを生成します、 "/ graph"の使用を避けます。

ステップ3: "model.fit()"にTensorboardコールバックを含めるサンプルを以下に示します。

model.fit(X_train,y_train, batch_size=batch_size, epochs=nb_Epoch, verbose=1, validation_split=0.2,callbacks=[tensor_board])

手順4:コードを実行して、グラフフォルダが作業ディレクトリにあるかどうかを確認します。上記のコードが正しく機能する場合は、作業ディレクトリに "Graph"フォルダがあります。

ステップ5:作業ディレクトリでターミナルを開き、以下のコマンドを入力してください。

tensorboard --logdir ./Graph

ステップ6:今あなたのウェブブラウザを開いて下にアドレスを入力してください。

http://localhost:6006

入力すると、Tensorbaordページが開き、そこでさまざまな変数のグラフを見ることができます。

13
sunil sharma

ここにいくつかのコードがあります:

K.set_learning_phase(1)
K.set_image_data_format('channels_last')

tb_callback = keras.callbacks.TensorBoard(
    log_dir=log_path,
    histogram_freq=2,
    write_graph=True
)
tb_callback.set_model(model)
callbacks = []
callbacks.append(tb_callback)

# Train net:
history = model.fit(
    [x_train],
    [y_train, y_train_c],
    batch_size=int(hype_space['batch_size']),
    epochs=EPOCHS,
    shuffle=True,
    verbose=1,
    callbacks=callbacks,
    validation_data=([x_test], [y_test, y_test_coarse])
).history

# Test net:
K.set_learning_phase(0)
score = model.evaluate([x_test], [y_test, y_test_coarse], verbose=0)

基本的に、histogram_freq=2はこのコールバックを呼び出すときに調整する最も重要なパラメータです。コールバックを呼び出すエポックの間隔を設定し、ディスク上のファイル数を減らすことを目標にしています。

それで、これがTensorBoardで一度見られた「ヒストグラム」タブの下でのトレーニング中の最後のたたみ込みの値の進化の視覚化の例です(そして私は「分布」タブが非常に似たチャートを含むことがわかりました。

tensorboard weights monitoring

あなたが文脈で完全な例を見たいと思うならば、あなたはこのオープンソースプロジェクトを参照することができます: https://github.com/Vooban/Hyperopt-Keras-CNN-CIFAR-100

6

いくつかあります。

まず、/Graphではなく./Graph

次に、TensorBoardコールバックを使用するときは、検証データを常に渡します。それがないと開始されないからです。

3つ目は、スカラサマリー以外のものを使用したい場合は、fit_generatorが機能しないため、fitメソッドのみを使用してください。あるいは、コールバックをfit_generatorで動作するように書き直すこともできます。

コールバックを追加するには、それをmodel.fit(..., callbacks=your_list_of_callbacks)に追加するだけです。

1

あなたはLosswise( https://losswise.com )をチェックするべきです、それはTensorboardより使いやすくて、そしていくつかの素晴らしい追加機能を持っているKerasのためのプラグインを持っています。 Losswiseでは、from losswise.libs import LosswiseKerasCallbackを使用してからcallback = LosswiseKerasCallback(tag='my fancy convnet 1')を使用するだけでよくなります( https://docs.losswise.com/#keras-plugin を参照)。

1
nicodjimenez

google-colabを使用している場合、グラフの簡単な視覚化は次のようになります。

import tensorboardcolab as tb

tbc = tb.TensorBoardColab()
tensorboard = tb.TensorBoardColabCallback(tbc)


history = model.fit(x_train,# Features
                    y_train, # Target vector
                    batch_size=batch_size, # Number of observations per batch
                    epochs=epochs, # Number of epochs
                    callbacks=[early_stopping, tensorboard], # Early stopping
                    verbose=1, # Print description after each Epoch
                    validation_split=0.2, #used for validation set every each Epoch
                    validation_data=(x_test, y_test)) # Test data-set to evaluate the model in the end of training
1
DINA TAKLIT

log_dir='/Graph'と書いたのですが、代わりに./Graphを意味しましたか?あなたは今それを/home/user/Graphに送りました。

1
Part

Tensorboardコールバックを作成します。

from keras.callbacks import TensorBoard
from datetime import datetime
logDir = "./Graph/" + datetime.now().strftime("%Y%m%d-%H%M%S") + "/"
tb = TensorBoard(log_dir=logDir, histogram_freq=2, write_graph=True, write_images=True, write_grads=True)

Tensorboardコールバックをfit呼び出しに渡します。

history = model.fit(X_train, y_train, epochs=200, callbacks=[tb])

モデルを実行しているときにKerasエラーが発生した場合

"プレースホルダテンソルの値を入力する必要があります"

モデル作成前にKerasセッションをリセットしてみてください。

import keras.backend as K
K.clear_session()
0
rsc