【忘備録】 nvidia dockerでUbuntu18.04に機械学習用の環境構築 〜最新版(2020/7)〜 【第2回 sklearnまで】
このページは第2回です.第1回はこちら.
前回に引き続き,機械学習の環境を構築していきます.
最終的にはtensorflow・kerasとpytorchを入れるところがゴールですが,今回は補助ツール的なライブラリと,sklearnを入れます.
タイムゾーン設定
タイムゾーンを先に設定しておかないとdockerのbuildで止まってしまうので,タイムゾーンを設定します.
Dockerfileに以下を追記します.
ENV DEBIAN_FRONTEND=noninteractive
RUN apt update && apt install -y tzdata
ENV TZ=Asia/Tokyo
gitのインストールより前でなくてはいけないようです.
参考にしたサイト:https://sleepless-se.net/2018/07/31/docker-build-tzdata-ubuntu/
補助ツール
gitとscreenを入れておきます.
他にも必要なものがあれば,ここで付け足していって下さい.
RUN apt update && apt upgrade -y && apt install -y --no-install-recommends \
git \
screen
これもDockerfileに追記です.
タイムゾーンの設定より後にして下さい.
matplotlib
グラフを描画するためのライブラリです.
アルゴリズムには直接関係ありませんが,デバッグなどで使うことが多いと思うので入れておきます.
以下をDockerfileに追記します.
RUN apt install -y --no-install-recommends python3-matplotlib
apt installなのでgitの部分と合わせてやっても問題ありません.
pipのupgrade
ここからpipでいろいろインストールすることになるので,pipのバージョンを最新にしておきます.
ちなみにpipの-qは出力を出さないようにするオプションです.出力が見たい場合はオプションを消して下さい.
以下をDockerfileに追記してください.
RUN pip3 install -q --upgrade pip
numpy
numpyも最新でない場合があるので,一応upgradeしておきます.
pipのupgradeと合わせても問題ありません.
以下をDockerfileに追記.
RUN pip3 install -q --upgrade numpy
sklearn
ではsklearnを入れましょう.pipがちゃんとupgradeできていれば,pipがうまいことインストールしてくれます.
以下をDockerfileに追記します.
RUN pip3 install -q scikit-learn
ここは公式を参考にしました.
テストコードで動作確認
最後にここまでインストールしたpythonライブラリを動作確認しましょう.
簡単なテストコードを書きました.
#!/usr/bin/env python
# coding: utf-8
import numpy as np
x = np.random.normal(5.0, 1.0, 100)
print(x)
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
plt.figure()
plt.hist(x, bins=10, color="red")
plt.savefig("matplotlib_test.png")
from sklearn import linear_model
reg = linear_model.LinearRegression()
reg.fit([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
print(reg.coef_)
実行は
python3 test_code.py
です.(保存したファイル名がtest_code.pyの場合)
ライブラリが正しく動けば,
・端末には平均5.0,分散1.0の正規分布からサンプリングされた100個のサンプルの配列と
・[0.5, 0.5]が表示され,
・ディレクトリに100個のサンプルのヒストグラムの画像が保存されます.
sklearnのサンプルプログラムは公式サイトを参考にしました.
ここまでのファイルを公開しています
Dockerfileとテストコードを公開しました.
(第二回分のcommitメッセージがミスっていますが,これは直せないので気にしないで下さい)
ご自由にダウンロードして使って下さい.
続きは次のページに
最終回となる次回は機械学習のライブラリを入れます.ページはこちら.
tensorflowとkeras,pytorchを入れて完成です.
この記事を書いた人: @wina_S_1991