Tensorflow 1.11 + Cuda 10.0でDeep Learning

カテゴリ: AI

Ubuntu 18.04にTensorflow 1.11.0 とCuda 10.0をインストールしてKeras でDeep Learning

Nvidiaのcuda10.0がubuntu18.04に対応したので早速インストールして試してみた。

Tensorflow 1.11がリリースされたのでソースコードをダウンロードしてビルドした。

ビルド環境は:
Python3.6.5, Tensorflow 1.11 , Cuda 10.0, cudnn7.3, nccl2.3.4,  TensorRT-5.0, gcc7.3.0
でうまく行った。
実行時のKerasのバージョンは 2.2.2

ちなみにハード環境は:
CPU AMD Ryzen 5 1600, 16GBメモリ
GPU Nvidia GTX 1060 + GTX 1050 TI

インストール、ビルド方法はここのサイトを参考にした。各ソフトのバージョンを読み替えればうまくいくでしょう。

Keras解説本に記載されているサイトからダウンロードしたサンプルコードを実行したがうまく実行できたので、サンプルコードに日本語のコメントを追加して公開。
KerasはTensorflowのラッパーなので、比較的直感的なPythonコードでDeepなコードが書ける。

参考にした解説書は[DEEP LEARNING with Python]でKerasの開発者が著したものだ。
なかなかいい本だと思う。日本語版も出ている。
日本語のコメントには日本語版を参考にした。

Deep Learningによる文章生成という、興味深いトピックがあったのでこれを選んだ。
オリジナル版は哲学者ニーチェの英訳本を使っているが、ここでは日本の文豪、島崎藤村の「夜明け前」の青空文庫のテキスト版を使った。
テキストをすべてひらがなに変換して、サンプルプログラムで使えるようにしている。
ひらがな変換時の漢字まじり文の読み上げの拙さによる、不正確なひらがな文になっているところもある。
いずれにしてもDeep Learningの応用として興味深い分野だ。

サンプルコードのInの部分のPythonコードを逐次、順番に実行すれば動作するが、原本のJupyter notebook形式のファイルを近いうちにアップロードする予定です。

ランダムに抜き取ったサンプルの文章の一部から、Deep Learningで生成した文章の例を示します。

-------------------------------------------------------------------------------------------
epoch 72
Epoch 1/1
85145/85145 [==============================] - 45s 523us/step - loss: 1.8636
--- Generating with seed: "のへんはがんせきのあいだで、ふきんにおおきないわがあったからで。
こどものじぶんのはんぞうをまえにすわらせておいて、きち"
------ temperature: 0.2
のへんはがんせきのあいだで、ふきんにおおきないわがあったからで。
こどものじぶんのはんぞうをまえにすわらせておいて、きちざえもんとかねへいとも、そのとき、きちざえもんとは、ひとつかいどうをつとめると、おれはそのときになってきた。
「おれも。そのじんのしょうじょうは、はんぞうはいえのものをながれて、かんさいはまだこのこくのところをしたちょうしたところにある。そういってくれると、しんたくになって、とうじのこくがくしゃのだいだんなことをしった。
「ことぶきひらじさん、きみはそれをおもいおしりすすすない。
「これは、おまえさまもおわいたちのあいだをさしだすか、うえにはよういしていた。そのとき、ひとつこくにきかなると、かれのひとつのにちにある。このうきのいってみをちかい、くろうけたこうように、かんさいがえどのほうへおもいがわたった。
「おれも。こしつ、これはおわりはんのるいかはなし、しかし、それからのとりかえってきている。そのとき、かねへいは、そのとき、ひとりのかたになった。
「ことぶきひらじさん、きみはわたしはなか
------ temperature: 0.5
のとりかえってきている。そのとき、かねへいは、そのとき、ひとりのかたになった。
「ことぶきひらじさん、きみはわたしはなかつがわのかいどうには、ふしみやのかんさいはだんたいがつをもつとめた。
「おたみ、おめいきのなかにもわれた。それにかえいだった。
なんてねんふたがつをつれてかえってみたが、こんどようとなりました。」
「ひとほんのしば、おやく、はんぞうはおたみをよんで、それをみかりさされた。そのとき、わたしはもうさまのようなきょうとにしんぱいをうらすうにした。
「さんじのうしのかみのだいみょうはおもいくれきあつりのあいだにもちであった。したしい。」
「さん、はんぞうはいえのものにちがすまにおりかぞくといって、かわのじょうしゅくのかいどうをかくものつとめいつあめにきかたるにも、やっきょうはおおやけぎのいえにひとばんさんがえどのほうへひき、おまんからはいらんないとして、はんぞうはおたみはあつまってみせて、しゅくのじょうにつうこうのほうへついた。おまえさまは、ついてはんぞうさまのいえのていいゃくのしょへいまもるとこ
------ temperature: 1.0
てみせて、しゅくのじょうにつうこうのほうへついた。おまえさまは、ついてはんぞうさまのいえのていいゃくのしょへいまもるところがかくけることでもはんぞうにちでにかぜのいっけんがじゅういたひじょうにわるためまでもたもっとがえた。
あしのなかのひそんをはうしおつよした。どれもみのできたということで、まごめのやすまかせいつだめまでもばくしてくる。みたままにねううさげにようとしていった。「おとうりょうで、、おたみにはこころふねんふのこれはやどをつけとちほそいをきかせる。はきがつは、はんぞうはいえのものにちからえんじょうしたはなしものをあった。
「そうおもやのかんさいはさべつののほうでおいかとがじきがあろかけたともとしそれのにちはかえってせあめににもつすほんのをざかのにわかせことのちょうしゅうをさわうしばわりですね。こんぶんはにしられるようなことのひかりる、ふたにちである。ちんきのじょうがひきかけているあめ、かまをみってとんのとむぽうとろうえをきく。あのかじゅうは、それをののうちにはなくかねこみされていた。かねへいはなか
------ temperature: 1.2
あめ、かまをみってとんのとむぽうとろうえをきく。あのかじゅうは、それをののうちにはなくかねこみされていた。かねへいはなかった。
きょうとがなんのじぶんをひきとにしてのぜんにらかくそこのいわりをえどれましれまかれたこともきいきゅうてきちがうよってきょうほんすのいじへはことむらできておるえていったいじゃでおきてきたいがくも、このしょきにほんじんにかれてきちざえもん、をぱつけれゅうようにしょうそうそうもそのちらいかりずをねんだ。とうじははいぞなのいえのものておりで、そのとにおもいらつやのちゃやであるまい。」
「そそさんはろはこちえのねんちゅうにあるろのしあげづかでありませんがなした。めれはいいひでのかんなじょんで、よこ、ごせんれいのわなかった。だいみょうにはなしをしておといろと、ありますよ。」
「さいだいそんのなかだでもわかるかさとのほうこうしもいなしておりぞうすにおうかきたいえがわらっている。あのいじかできいとちょうができてごさんかいがわる。みまもるにほんおくがだいたんろうとかれはかゆうへたよせいののぼりほうに
---------------------------------------------------------------------------------------------------
続きを読む...
このRSSフィードを購読