雑に TensorBoard を起動する Docker イメージの作り方

  • 0
    Like
  • 0
    Comment

    いつも 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 が見れると思う。