Interface2017-12号第三章メカニズム実験 それらしい写真を自動生成する人工知能

10,000ステップの学習に戻し再度実行
1日と1時間で終了 
食べ物ではないなにかかな

f:id:bitop:20171202081447p:plain

動画にもしてみる
ffmpegにかけるためファイル名を連番にリネームする

#code:rename.py

import glob
import os

fl = glob.glob("*.jpg")
count = 0
for f in sorted(fl):
  s = '{0:0>5}.jpg'.format(count)
  os.rename(f,s)
  count = count + 1

シエルで動画に変換    
$ffmpeg -i %05d.jpg -r 5 -s 100x100 sample.avi

Interface2017-12号第三章メカニズム実験 それらしい写真を自動生成する人工知能

必要なファイル
dcgan.py
setup.sh
test.py
train.py
util.py

学習をかけると100ステップで約15分かかっているので10,000ステップは
22時間かかってしまうので1000ステップに縮小

結果
f:id:bitop:20171124170838j:plain

食べ物とはわからないレベルになった。
今度時間があるときに再実行してみよう

Interface2017-12号第2章メカニズム実験 勝手に成長する人工知能を読む

必要なファイル
agent.py
environment.py
play.py
qfunction.py
replay_memory.py
train.py
を用意
$python tarin.py
で実行させたがreplay_memory.pyでメモリーエラー
MemTotal: 6.0 GB
MemFree: 3,3 GB

replay_memory.pyで要求されたメモリーは約2.8Gなので
python実行環境などに使用しているメモリーも合わせ3.3Gを
オーバーしたのであろう

リプレイメモリへの保存数
memory_size = 100000 #1000000->100000
に減らしたらなんとか起動
しかし5時間立っても終了しないインジケータをみると2%の進捗率のようである
終了予想時間を計算すると12日後かな。

最大のステップ数
を500000にする
なんとか実行可能となる。
意外とうまく動けている。
モリーGPUの増設とかが必須になるのだろうか

f:id:bitop:20171124050759p:plain

Interface2017-12号第2章メカニズム実験 勝手に成長する人工知能を読む

ステップ1 実行環境を準備する

pip install gym
pip install gym[atari]

gym[atari]でエラーがでた。
xorg-devをinstallするとエラーが収まった。
掲載されていたソースを実行させたところ
すぐ終了するのでrange(1000)を10000000まであげた。  

f:id:bitop:20171119111012p:plain

Interface2017-12号第1章メカニズム実験 対話する人工知能を読む

仮想環境からtensorflow1.4.0を削除
pip uninstall tensorflow
改めてtensolflow1.0.1をインストール
(GPUなし python version=3.5.*)
pip install --ignore-installed --upgrade https:storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.1-cp35-cp35m-linux_x86_64.whl

実行させてみるが学習ループが何回か回るとInvalidArgumentErrorで止まるのでrun.py内のstep_times = 10000を5にすると最後まで行く
20にするとエラーがでる。15にしてstep_per_checkpoint を 100から3にする
十分学習しているとは思えないが先に進む
学習後に
dictionary_i2w.json,dictionary_w2i.json
tmp/checkpoint,model.ckpt.data-00000-of-00001,model.ckpt.index,model.ckpt.meta
のファイルが作成されている

slackのアカウントを取得しAPIをもらう
Botをつくる。

こちらの仮想環境にslackbotをインストールする
pip install slackbot
/home/user_name/anaconda3/envs/tesorflow/lib/python3.5/site-package/slackbot/内にsetting.pyが
あったのでそちらにAPI Tokenを書き込む

$python run.pyとしてボット対話可能となったので
slackサイトにいきbotに質問を入力する

run.pyにデバッグ用のprint文をいれておき
message変数もprintするようにしておいたが
出力せず。
学習不足?

f:id:bitop:20171118181958p:plain

Interface2017-12号第1章メカニズム実験 対話する人工知能を読む

ステップ3 Neural Conversational Modelの構築

tensorflowはver 0.9.0をいれていたが最新版にアップグレードする
仮想環境に入ってpip instal -U tensorflowでver1.4.0になった。

GitHubよりseq2seq_model.py,train.py,util.pyをdownloadする
$python train.pyとするが(4)モデル作成のところでSeq2SeqModelが呼び出している  
seq2seq.pyの内部でエラーがでる。  

テンソルフローのGithubにいきseq2seq_model.pyとseq2seq.pyを差し替え、
data_utils.pyを追加したがエラーが収まりそうにないので今日はここまで。

ローカル名前解決構築

宅内のサーバにアクセスするときIPアドレスを直接入力していた(数が少ないので暗記していた)
まったく困ってはいなかったが「ホスト名だけでサーバーにアクセスできる」という記事が あったので ラズパイに名前解決ソフトを導入してみることにした。

Avahiですでにラズパイには入っていたが稼動はしていなかった。

$systemctl start avahi-daemon
$systemctl list-unit-files -t service | grep avahi
avahi-daemon.service enabled
とでたので
python -m http.server 
#(ver 2.* ではpython -m SimpleHTTPSerVer 8080)
としてWindow機のブラウザーのURL欄の
http://パソコンのホスト名.local:8080でアクセスできた