【忘備録】 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

この記事が気に入ったらサポートをしてみませんか?