tensorboardにtensorflow処理のグラフを表示させる方法と表示できないときの問題

▼この記事をSNSでシェアする▼

スポンサーリンク

スポンサーリンク

ディープラーニングという流行りのワードに便乗気味に機械学習をかじっています。

今回はその中でもtensorflowでデータフローグラフを扱う tensorboardの表示の方法を紹介します。

ネットや本を見ながらやってうまくいかなったポイントを後半で紹介しているので、すでにチャレンジしていてお困りの方はそこを確認すると良いかもしれないです。

tensorflow処理のグラフを表示する流れ

<プログラムの処理>

  1. 定数、変数の定義
  2. 演算を変数に格納
  3. セッション開始
  4. セッションで2番で用意した演算を実行
  5. グラフを書き出す

<コマンドラインでの処理>

  1. 上記プログラムの実行
  2. tensorboardの表示

ざっくりとした説明ですがこんな感じです。

tensorboardでのグラフ表示

プログラム作成

add_op(足し算)とmul_op(掛け算)を引数にcal_opで掛け算を実行しています。

8−11行目計算がすでに実行されているように思えますが、実際の計算はセッションを生成したあとに、run()メソッドを実行して初めて演算が実行されます。

tf.summary.FileWriter(‘ログファイルの出力場所’,sess.graph)

ここでグラフ描画用のログファイルを生成し、そこを利用し、tensorboardにグラフを表示します。

コマンドラインでの処理

プログラムを実行し、tensorboardをローカルで起動します。

赤枠内のようにtensorboardのURLが表示されるのでブラウザでそれを表示しましょう。

うまくいかない場合は

「http://localhost:6006」を入力しましょう。

右上のメニューで「GRAPH」を選択すると、このように表示されます!

addの計算処理とmulの計算処理を入力し、calの計算処理を出力するデータフローが表示されています。

tensorboardが表示されない時の原因

うまくいかないとこんな表示がよくでます。

データがありません的な・・・

ディレクトリの参照か出力がうまく行ってない場合があります。

logのディレクトリパスが誤っている

「tf.summary.FileWriter(‘./logs’,sess.graph)」

プログラムでグラフの描画に用いるログファイルをカレントのディレクトリのlogsに書き出して、「tesnorboard –logdir=./logs」と記述しています。

これはプログラムの格納場所とコマンド実行ディレクトリが一緒であるため、正常に実行されています。

tensorboardでうまく実行できない。グラフはちゃんと書き出されているのに・・・

なんてときはディレクトリの指定の仕方を見直しましょう。

FileWriterをclose()処理が未完了

プログラム正常に実行されているのに、logのディレクトリにグラフが生成されてねえ・・・・

ぼくはしばらくこの問題でつっかかりました。

参考にしてた書籍と揃えたコーディングなのに・・・

この場合は最後のFileWriterの書き出しのクローズ処理が抜けている可能性があります。

(ぼくはそうでした。)

メニュー・主な記事カテゴリ

おすすめ特集!




「ゆとり鳥日記」について
ITを中心に関心の赴くままに好きなように書いていく雑記ブログ!管理人が二人います。
◆フクロウ(19卒就活生)
◆トンビ(社会人1年目SE)

詳しいプロフィール
お仕事の依頼・ご要望

ゆとり鳥日記をBTCで応援する