LoginSignup
3
0

More than 5 years have passed since last update.

【小技】DockerのTensorFlowイメージに日本語環境を導入する。

Posted at

はじめに

日本語の文書分類タスクをDockerのTensorFlowイメージを用いて学習、評価、予測を行いたかったのですが、pullしたてのそのままじゃ日本語使えなかったよ〜って話です。

TensorFlow with Docker

TensorFlowやKerasを手軽に試したいときの選択肢として、
Dockerイメージを利用する方法が挙げられます。
Docker HubにはTensorFlow公式のイメージがあるので、使わない手はありません。

$ docker pull tensorflow/tensorflow:latest-py3

 Python3系が使いたかったので、タグにlatest-py3を指定しています。

$ docker run --rm tensorflow/tensorflow:latest-py3 python -V
Python 3.5.2

バッチリですね。
ところが、

$ docker run --rm tensorflow/tensorflow:latest-py3 python -c "print('ほげ')"
Unable to decode the command from the command line:
UnicodeEncodeError: 'utf-8' codec can't encode character '\udce3' in position 7: surrogates not allowed

pullしたてのイメージでは、日本語を取り扱うことが出来ないようです。

ここでイメージのlocaleを確認しましょう。

$ docker run --rm tensorflow/tensorflow:latest-py3 locale -a
C
C.UTF-8
POSIX

なるほど確かに日本語環境を導入する必要がありそうです。

日本語ナイズなDockerイメージを作る。

冒頭でpullしたイメージをもとに、日本語使用可能なイメージをビルドしましょう。

Dockerfile
FROM tensorflow/tensorflow:latest-py3
ENV LANG ja_JP.UTF-8

RUN apt-get update \
    && apt-get install language-pack-ja-base language-pack-ja -y

CMD ["/run_jupyter.sh", "--allow-root"]

こちらのDockerfileをビルドしましょう!

$ docker build -t tf-jp .

pull直後のイメージでは失敗したpython -c "print('ほげ')"を日本語ナイズされたイメージで再び実行してみます。

$ docker run --rm tf-jp python -c "print('ほげ')"
ほげ

お疲れ様でした!!
無事tensorflowコンテナで日本語が扱えるようになりました。

終わりに

そもそもの動機は日本語の文書をCNNで分類させたかったということでした。
最近はDockerにどっぷりなのですが、今回のように公式イメージに日本語環境が入っていないことが結構あったのでまとめてみました。
閲覧ありがとうございました!

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0