ディープラーニングを実装する場合、
ゼロからコードを書くのは非効率なため、専用のフレームワークを用いるのが一般的だ。
(フレームワークの考察ブログは、こちら)
現在、主要なものは、次の4つといわれる。
• PyTorch: 2016年・Facebook。新顔だが、人気急上昇中。
• Keras: 2015年・Google社員開発。使いやすくて簡単で初心者向け。
• Chainer: 2015年・日本のPreferred Networks。残念だが、2019年12月、新機能開発を終了し、PyTorchに移行することが発表された。
なので、現在は、
この2択といっていい。
実際、
巣籠悠輔著『詳解ディープラーニング』も、
サブタイトルが、
「TensorFlow/Keras・PyTorchによる時系列データ処理」
と、現在の2強のフレームワークをカバーする形になっている。
で、どちらを使うのか?
今回、キカガク長期コースでは
PyTorchを使って、と思っていたが、
講師から、
Kerasを、というアドバイスがあったので、
TensorFlowのKerasを使って、モデル構築することになった。
で、そのKeras。
モデル構築には2パターンあって(*その話は、こちら)
今回は、
「Function API」
を使う。
Function = 関数(*1) ってわかるけど、APIってなんやろ?(また、そこ?)
どうも細かいことが気になってしかたない。
(だからなかなか先に進まない。って昨日も同じこと言った!)
Kerasの公式ドキュメントの説明を読んでみる。
(Google 翻訳:Keras 関数型APIは,複数の出力があるモデルや有向非巡回グラフ,共有レイヤーを持ったモデルなどの複雑なモデルを定義するためのインターフェースです。)
(Google 翻訳: 関数型APIを使用すると、トレーニング済みのモデルを簡単に再利用できます。テンソルで呼び出すことにより、モデルをレイヤーのように扱うことができます。 モデルを呼び出すことで、モデルのアーキテクチャを再利用するだけでなく、その重みも再利用することに注意してください。)
要約すると、
複雑なモデルを作るときに使うもので、
コードをゼロから書く必要がなく、
学習済みのモデルを転移学習できるもの
だということだ。
でも、API ってなに?(←もうええやろ)
API( Application Programming Interface )のうち、
アプリ(Application)やプログラミング(Programming)はいいとして、
インターフェース(Interface)とは、
パソコンのキーボードやマウス、テレビのリモコンや駅の券売機などのように、
人間とコンピューターが接する部分のこと。
まとめると、API とは、
プログラマーの代わりにアプリケーションに情報や指示を出してプログラミングしてくれるような役割を果たすもの、
という理解でよさそうだ。
さあ、いよいよ本番。
で、モデル構築を始めよう。
コメント
[…] TensorFlow/KerasかPyTorchか?〜モデル構築https://uncle-kanazawa.com/tensorflow-keras-or-pytorch/ […]