はじめに
皆さん、やってますか?
機械学習
ここ数年、第3次AIブームなんて言われて、もてはやされているアイツです。
人工知能、機械学習、ニューラルネットワーク、ディープラーニング
最近、黙々と勉強してはいますが、 ん~…なんだか難しいですね…。
今回は、その辺はいったん置いておいて、機械学習の環境をサクッと作っちゃいましょうというお話です。
意外と簡単に作れちゃいます。
(参考記事はたくさんあると思いますが、自分用メモも兼ねてます)
Google Colaboratory
でいいじゃん~って方は
こちら
PC環境
・OS:Windows10 Pro
・GPU:GeForce 940MX
・CPU:Core i5-7200U
・メモリ:16GB
nVIDIA CUDA ToolkitとcuDNNのインストール
まずは こちらの記事 を参考にCUDA Toolkit
とcuDNN
をインストールしちゃいましょう。
TensorFlow(GPU版)
を使う場合に必要になるためです。
注意点としては、記事中のリンクでCUDAをダウンロードしてしまうと、最新の10.1になってしまい、TensorFlowで使う場合シンボリックリンクを設定しなければならないため、こちら から10.0のアーカイブをダンロードしてインストールした方が楽です。
Anacondaのインストール
Pythonの環境はAnaconda
を使います。
実のところ一度、素のPython3.7
環境でも機械学習の環境を作りました。
そして「Windows10でAnacondaなしで機械学習環境を作る」
みたいな記事を書こうと思いました。
ですが、調べているうちにcondaでインストールした環境の方が速度が速い
という記事をいくつか見つけたため、
「え~?じゃあAnaconndaで環境作り直す~?」
という気持ちで改めて、AnacondaでPython環境を構築しました。
ということでまずはAnacondaの公式からインストーラをダウンロードしてインストールします。
途中の
Add Anaconda to my PATH environment variavle
はチェックを入れておけば、環境変数にAnaconda系のパスが勝手に入ると思います。
インストール後は、コマンドプロンプトやPowerShell等で
conda
python
pip
の3つを実行しパスが通っているか確認しましょう。
仮想環境作成
AnacondaはPythonの環境をお手軽に作れてしまします。
どういう利点があるのかとか、詳しく知りたい人は今回はGoogle先生にお任せします。
仮想環境を作成するコマンドは以下
> conda create --name myenv python=3.7
myenvの部分は仮想環境の名前なのでお好きな名前にしちゃってください。
これだけで環境がバンバン作れちゃいます。
環境の切り替えは
> conda activate myenv
で切り替えられます。
※ 注意として、よく見かけるのが、condaがついていない
> activate myenv
ですが、古いバージョンの書き方のようで、
一見何もエラーがなく切り替わったように見えますが、
後述のinfo
で調べても環境が切り替わっていません。
自分が今どの環境をアクティブにしているか確認するには
> conda info -e
で以下のように確認できます。
# conda environments:
#
base C:\Users\<ユーザー名>\Anaconda3
myenv * C:\Users\<ユーザー名>\Anaconda3\envs\myenv
「*」がついているのが現在の環境です。
必要そうなパッケージのインストール
必要そうな
と書いているように、もしかしたらいらないかもしれません。
いろんな機械学習を試してみたい!って場合は必要かも。
conda install pandas
conda install scikit-learn
conda install scikit-image
OpenAI Gym環境インストール
pip install gym
conda install -c conda-forge jsanimation
conda install pyglet
conda install -c conda-forge ffmpeg
pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py
conda install
とpip install
を混在させると環境が壊れるという話もあるので、
できればpip install
は使わないようにしたいのですが、Anacondaにパッケージがない場合はやむなし…。
KerasとTensorFlow環境インストール
TensorFlow
あればKeras
内包されてるし、いらないんじゃない?
という意見もあるかと思いますが、サンプルとかで混在している場合もあったりするので、念の為。
conda install -c conda-forge keras
conda install pydotplus
conda install tensorflow
conda install tensorflow-gpu
完成!
以上で、ある程度の機械学習の環境が整いました。
最終的な
conda list
# Name Version Build Channel
_tflow_select 2.1.0 gpu
absl-py 0.8.1 py37_0
astor 0.8.0 py37_0
astroid 2.3.2 py37_0
atari-py 1.2.1 pypi_0 pypi
blas 1.0 mkl
ca-certificates 2019.10.16 0
certifi 2019.9.11 py37_0
cloudpickle 1.2.2 py_0
colorama 0.4.1 py37_0
cudatoolkit 10.0.130 0
cudnn 7.6.4 cuda10.0_0
cycler 0.10.0 py37_0
cytoolz 0.10.0 py37he774522_0
dask-core 2.6.0 py_0
decorator 4.4.1 py_0
ffmpeg 4.2 h6538335_0 conda-forge
freetype 2.9.1 ha9979f8_1
future 0.18.2 pypi_0 pypi
gast 0.2.2 py37_0
google-pasta 0.1.7 py_0
grpcio 1.16.1 py37h351948d_1
gym 0.15.4 pypi_0 pypi
h5py 2.9.0 py37h5e291fa_0
hdf5 1.10.4 h7ebc959_0
icc_rt 2019.0.0 h0cc432a_1
icu 58.2 ha66f8fd_1
imageio 2.6.1 py37_0
intel-openmp 2019.4 245
isort 4.3.21 py37_0
joblib 0.14.0 py_0
jpeg 9b hb83a4c4_2
jsanimation 0.1 py_1 conda-forge
keras 2.3.1 py37h21ff451_0 conda-forge
keras-applications 1.0.8 py_0
keras-preprocessing 1.1.0 py_1
kiwisolver 1.1.0 py37ha925a31_0
lazy-object-proxy 1.4.3 py37he774522_0
libgpuarray 0.7.6 hfa6e2cd_1003 conda-forge
libpng 1.6.37 h2a8f88b_0
libprotobuf 3.9.2 h7bd577a_0
libtiff 4.1.0 h56a325e_0
mako 1.1.0 py_0 conda-forge
markdown 3.1.1 py37_0
markupsafe 1.1.1 py37hfa6e2cd_0 conda-forge
matplotlib 3.1.1 py37hc8f65d3_0
mccabe 0.6.1 py37_1
mkl 2019.4 245
mkl-service 2.3.0 py37hb782905_0
mkl_fft 1.0.15 py37h14836fe_0
mkl_random 1.1.0 py37h675688f_0
networkx 2.4 py_0
numpy 1.17.3 py37h4ceb530_0
numpy-base 1.17.3 py37hc3f5095_0
olefile 0.46 py37_0
opencv-python 4.1.1.26 pypi_0 pypi
openssl 1.1.1d he774522_3
opt_einsum 3.1.0 py_0
pandas 0.25.2 py37ha925a31_0
pillow 6.2.1 py37hdc69c19_0
pip 19.3.1 py37_0
protobuf 3.9.2 py37h33f27b4_0
pydotplus 2.0.2 py37_1
pyglet 1.3.2 pypi_0 pypi
pygpu 0.7.6 py37hc8d92b1_1000 conda-forge
pylint 2.4.3 py37_0
pyparsing 2.4.2 py_0
pyqt 5.9.2 py37h6538335_2
pyreadline 2.1 py37_1
python 3.7.5 h8c8aaf0_0
python-dateutil 2.8.1 py_0
pytz 2019.3 py_0
pywavelets 1.1.1 py37he774522_0
pyyaml 5.1.2 py37hfa6e2cd_0 conda-forge
qt 5.9.7 vc14h73c81de_0
scikit-image 0.15.0 py37ha925a31_0
scikit-learn 0.21.3 py37h6288b17_0
scipy 1.3.1 py37h29ff71c_0
setuptools 41.6.0 py37_0
sip 4.19.8 py37h6538335_0
six 1.12.0 py37_0
sqlite 3.30.1 he774522_0
tensorboard 2.0.0 pyhb230dea_0
tensorflow 2.0.0 gpu_py37h57d29ca_0
tensorflow-base 2.0.0 gpu_py37h390e234_0
tensorflow-estimator 2.0.0 pyh2649769_0
tensorflow-gpu 2.0.0 h0d30ee6_0
termcolor 1.1.0 py37_1
theano 1.0.4 py37h6538335_1000 conda-forge
tk 8.6.8 hfa6e2cd_0
toolz 0.10.0 py_0
tornado 6.0.3 py37he774522_0
tqdm 4.36.1 py_0
vc 14.1 h0510ff6_4
vs2015_runtime 14.16.27012 hf0eaf9b_0
vs2015_win-64 14.0.25420 h55c1224_11
webencodings 0.5.1 py37_1
werkzeug 0.16.0 py_0
wheel 0.33.6 py37_0
wincertstore 0.2 py37_0
wrapt 1.11.2 py37he774522_0
xz 5.2.4 h2fa13f4_4
yaml 0.1.7 hfa6e2cd_1001 conda-forge
zlib 1.2.11 h62dcd97_3
zstd 1.3.7 h508b16e_0
まとめ
つらつらとインストールして、今は1つの仮想環境にいろいろまとめて入っていますが。
用途
によって別途仮想環境を作って分けて
もいいと思います。
あとは、サンプルを探して動かしてみるなり、
自分で試行錯誤してみたり、いろいろ試せるようになると思います!
・
・
・
と言いたいところですが、TensorFlow2.0.0
のサンプルがまだまだ転がってない状況なんですよね…。
過去バージョンのサンプルはたくさんあるのですが、2.0.0
で変わった箇所が多く、そのままでは動かないこと多数です。
TensorFlowの公式もGoogleColaboratory
でチュートリアルを体験できるようになっています。
(Googleが開発したライブラリなので当然っちゃ当然ですが)
なので、旧バージョンのサンプルを自分なりに理解して、改変できるくらいの知識はやはり必要そうですね…_(┐「ε:)_
まだまだ機械学習についてはで勉強中ですが、今後何かおもしろいことができるようになってきたら、
自分の脳のメモリが追いつく限り、発信していければなーと思っています!
(既にパンパン)