いつも TensorFlow を使うときは GPU 環境1に NVIDIA Docker で TensorFlow コンテナを起動して学習させているが、Docker を使っていると TensorBoard を使いたい場合に別コンテナで起動する必要があって、そのやり方をメモとして書いておく。
TensorFlow のログの吐き方については書いていないので調べて欲しい。
イメージを作る
TensorFlow の公式 Docker イメージ をそのまま使っても良いんだけど、TensorBoard を使う分には必要ないものが色々入っていて重いので Python3.5 イメージから作る。
Dockerfile
FROM python:3.5
RUN pip install tensorflow
WORKDIR /logs
ENTRYPOINT ["tensorboard", "--logdir", "/logs"]
CMD []
$ docker build . -t tensorboard
イメージを起動する
いくつかオプションを指定して先程ビルドしたイメージを起動する。
-
-v
TensorFlow のログが吐かれるディレクトリをマウントする -
-p
ホスト側に公開するポートを設定する
ちなみに TensorBoard を使うだけなら GPU は必要ないのでここは NVIDIA Docker で起動する必要はない。
$ docker run --rm -it -v <ログディレクトリ>:/logs -p 6006:6006 tensorboard
CMD
ではなく ENTRYPOINT
で TensorBoard を起動しているのでオプション追加もできる
$ docker run --rm -it -v <ログディレクトリ>:/logs -p 6006:6006 tensorboard --reload_interval 2
起動したら http://<ホスト>:6006/ で TensorBoard が見れると思う。