スポンサーリンク

Windows8.1にChainer2.0をインストール

Chainerの本が、Version2に対応したみたいなので、以下の本を衝動買い!
(あとで、2017/10/18時点で、Chainerは既にVersion 3.0になってしまっていたことを知る。)

(環境)
Panasonic CF-RZ4
Windows 8.1 Pro
Anaconda 4.4.0
Python 3.5
Chainer 2.0

上記本のサンプルコード

http://www.ohmsha.co.jp/data/link/978-4-274-22107-1/index.htm

(1)Anacondaのインストール

https://www.anaconda.com/download/
image

からWindows用64bit Anacondaをダウンロードしてインストール

参考:http://yaju3d.hatenablog.jp/entry/2017/03/22/022511

(2)Anaconda Promptを開く

image

conda info --envs
conda create --name chainer2 python=3.5 anaconda

image

image

activate chainer2

次の画面になる。

image

pip install chainer

image

えっと、chainer 2.0をインストールするつもりが、chainer3.0がインストールされてしまった。

pip uninstall chainer

image

pip install chainer=="2.0″

image

これでChainer2.0がインストールされたらしい。

jupyter notebook

image

C:/py/chainer2/ フォルダを、Windowsで作成しておく。

Jupyter notebook上で、New > python3 で、171018.ipynb を作成

image

import chainer
chainer.__version__

image

(3)第1章 Numpyで最低限知っておくこと を写経してみる。

image

image

(4)第3章 Chainerの使い方 を写経してみる。

image

ううむ、何をやっているのかほとんど分からない。

(5)第4章 Chainerの利用例 を写経してみる。

import numpy as np
import chainer
from chainer import cuda, Function, report, training, utils, Variable
from chainer import datasets, iterators, optimizers, serializers
from chainer import Link, Chain, ChainList
import chainer.functions as F
import chainer.links as L
from chainer.training import extensions

は毎回必要らしい。。。

image

image

image

本文には、なぜか print関数にprint() の()が入っていないが、()が必要。

第7章の、iris0-trainer.py を写経。例によってprintのところは、print() に変更する。

image

これをゆっくり解読していけば、predict っぽいこともできるかな。。。numpyがややこしい。

(6)第7章 Convolution Neurral Network を写経してみる

これがやりたかったのです。

私は画像分類や、画像から数値を出力したいのです。

image

image

#1 データの準備・設定 で、初回はMNISTのデータをダウンロードしてくるのに、数分から10分くらいかかった。

image

この、学習の、trainer.run() のところが、私の貧弱ノートパソコンでは、何時間もかかりそう。。。

image

image

結果の出力

image

学習したモデルの保存

image

参考:https://qiita.com/icoxfog417/items/96ecaff323434c8d677b

今日はこのくらいまで。。。

Chainerさっぱり分からない私にとっては、この本のキモは、

p42の、「全体図」

https://books.google.co.jp/books?id=n342DwAAQBAJ&pg=PA42&lpg=PA42&dq=chainer+%E5%85%A8%E4%BD%93%E5%9B%B3&source=bl&ots=1ybBZW8I4N&sig=X7mUk9h3Ib7P6uk7uKv5F90l-vM&hl=ja&sa=X&ved=0ahUKEwjQo5u1rfrWAhUFI5QKHSJaB5kQ6AEINTAC#v=onepage&q=chainer%20%E5%85%A8%E4%BD%93%E5%9B%B3&f=false

p54の、「Trainerを利用する場合の全体図」

であった。Chainerをやってみたいと思うならば、この本はこの2ページを読むためだけでも、購入の価値があると思われる。これで、Chainer2.0のサンプルを探して写経していけば、なんとなくできるかもしれないと思ったり思わなかったり。。。

写経して動いたら、次は、KerasやNeural Network Consoleでやった、自前データで画像分類を、Chainerでやってみたい。

そして、その結果をWebで公開できるようにしたい。

 

「Trainerを利用する場合の全体図」
(参考:Chainer v2による実践深層学習 新納浩幸 p54)

(引用ここから)
————————————-

(0)#0 Chainerを使用するためのimport文

(1)#1 tuple_datasetによるデータの準備・設定

(2)#2 モデルの記述
class MyModel(Chain):
def __init__(self):
super(MyModel, self).__init__(
# パラメータを含む関数の宣言
)
def __call__(self, x,t):
# 損失関数
def fwd(self, x):
# 順伝播? ここにもモデルを記載、予測するときにこの関数を用いる

(3)#3 モデルと最適化アルゴリズムの設定(ほぼお約束の3行)
model = MyModel()
optimizer = optimizers.Adam()
optimizer.setup(model)

(4)#4 学習(Trainerを利用する場合)
iterator = iterators.SerialIterator(tdata, bsize)
updater = training.StandardUpdater(iterator, optimizer)
trainer = training.Trainer(updater, (ep, 'epoch’))
trainer.extend(extensions.ProgressBar())

trainer.run()

(5)#5 結果の出力

————————————-
(引用ここまで)

(参考1)

http://twosquirrel.mints.ne.jp/?p=19813

http://twosquirrel.mints.ne.jp/?p=19448

(参考2)

2016-01-29
Anacondaのcondaコマンドによる仮想環境の使い方のまとめ
http://minus9d.hatenablog.com/entry/2016/01/29/235916

【Python入門】Print文での文字列の出力の仕方
http://programming-study.com/technology/python-print/

(参考3)

Chainer を活用したニューラルネットの学習 〜 Web API サーバの作成
2016年12月16日に更新
https://qiita.com/tanikawa/items/a0ecf10638f327f63f3e

API取得PHPプログラム
https://qiita.com/k499778/items/fd02409919f02834e340

スポンサーリンク