現在、使われているディープラーニングフレームワークの有名どころとして2つあります。
それはPyTorchとTensorFlowです。
個人的にはPyTorchをオススメします。その理由をお伝えします。
一つ目の利点は、実装がシンプルな点です。PyTorchは、他のPythonライブラリと使用方法や構成が似ています。そして、注意点やベストプラクティスが多く公開されている点です(公式ドキュメントが優秀)。
PyTorchは数値、ベクトル、行列、配列などを保持するためのデータ型として、テンソルを基本としています。つまり、NumPyに慣れている人であれば、テンソルをベースとしたPyTorchは親しみ安いのです。
2つ目の利点は、Pythonに頼らずに推論用のモデルをデプロイすることが出来ます。更に高性能なC++ランタイムを搭載しており、C++でモデルの設計や訓練も可能です。
最近では、他の言語へのバインディングや、モバイルデバイスにデプロイするためのインターフェースも整ってきています。
これらの機能により、Pythonや他のフレームワークで実装が困難であったりするようなアプリケーションにも対応することが出来ます。
TensorFlowも2系になり、kerasを完全に取り込むことで使いやすさが格段に増しました。
TensorFlowはデプロイまでのしっかりとしたパイプライン、広くまだがるコミュニティ、大きな認知度があります。一方、PyTorchは研究者や教育関係者の間で広まり、産業界に進出してきた経緯があります。
TorchScriptと呼ばれる「グラフモード」のランタイムをPyTorchが1.0のバージョンで追加し、対してTensorFlowが即時実行可能なeager modeを提供したことにより、互いの機能が似たようなものに収束してきています。それでも実装手法や使用感は大分異なっています。
結論として、個人的にはPyTorchを押しますが、使用感が合わないときにはTensorFlowを試してみるのをオススメします。その他のフレームワークについては使用しない方がいいです。
まとめ
PyTorchのようなライブラリを使用することで、ニューラルネットワークモデルを効率的に構築したり、訓練したりすることができる。
柔軟性とスピードを重視しながら、不要な作業を最低限に抑えます。
TorchScriptを使用することで、C++やモバイルデバイスからもモデルを事前にコンパイルして、使用可能。
PyTorchにはAIプロジェクトを開発するための役立つライブラリが多数用意されている。