TensorFlowでニューラルネットワーク、CNNを実装してみた



今回は、TensorFlowでニューラルネットワーク、畳み込みニューラルネットワークの実装について記します。

以前にChainerやPyTorchでも各種ニューラルネットワークを実装していますので、今回も同様のタスクを実装してみます。

Chainerでニューラルネットワーク、RNN、CNNを実装してみた
(adsbygoogle = window.adsbygoogle || ).push({});RNNの実装の勉強もしました。今回は整理と備忘録も込めて、Chainerでニューラルネットワーク、リカレントニューラルネットワーク、畳み込みニューラルネットワークの実装について記します。ニューラルネットワーク...

TensorFlow

もはや紹介する必要もないかもしれませんが、TensorFlowはGoogleで開発されている数値処理用のオープンソースライブラリです。

機械学習や深層学習などのAI分野を中心に活用が進んでいます。

TensorFlow: https://www.tensorflow.org/

世界的に見れば、深層学習のライブラリにおいては、現時点で一番使われているライブラリかと思います。

テンソル(tensor)というTensorFlow特有のデータ構造を用意し、計算グラフを構築して、データを供給(flow)するといった流れをコーディングするイメージになります。

そのような性質から、ChainerやPyTorchなどのライブラリとはだいぶ異なる書き方をし、初学者は少し取っ付きづらいような印象があります。

TensorFlowによるニューラルネットワークの実装

他の例と同様に、アイリスのデータでニューラルネットワークを学習させてみます。

実装が下記になります。

GitHub: https://github.com/Gin04gh/samples_py/blob/master/NeuralNetwork_TensorFlow.ipynb

TensorFlowによる畳み込みニューラルネットワーク(CNN)の実装

続いて、畳込みニューラルネットワークの実装を試してみます。

こちらも他の例と同様に、最も基本的な問題であるMNISTを実装しました。

GitHub: https://github.com/Gin04gh/samples_py/blob/master/ConvolutionalNeuralNetwork_TensorFlow.ipynb

まとめ

以上、TensorFlowで、ニューラルネットワーク、畳み込みニューラルネットワークの実装を行いました。

TensorFlowの場合は、いまいちモデル自体をどのようにクラス化すればいいのかで、迷ってしまいました。

英語になりますが、やはり公式ドキュメントの情報は多いと思います。

世界的にもよく扱われているライブラリであるため、ネット上にも他の人の実装例が見つかりやすいのも利点かと思います。

また、静的グラフ作成のためか、Chainerに比べると、実行速度が早い気がします。(CPUですが…)



 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です