機械学習フレームワーク「PyTorch 1.5」リリース、C++フロントエンドが正式導入

 PyTorch開発チームは4月21日、機械学習フレームワークの最新版となる「PyTorch 1.5」の公開を発表した。C++フロントエンドが安定扱いになるなどの機能強化が加わった。

 PyTorchはオープンソースの機械学習フレームワーク。GPUアクセラレーションによって高速に処理を実行できるのが特徴。もともとは米Facebookが開発した技術で、2018年末にオープンソースプロジェクトとなった。

 PyTorce 1.5は1月に公開されたPyTorch 1.4に続く最新版。Python 2のサポートがなくなり、サポートするPythonはバージョン3.5以上となった。

 新たにC++フロントエンドAPIが安定扱いとなり、Python APIと機能面で同等となった。C++ torch::nn::Moduleのドキュメントと機能をほぼ網羅し、Pythonからアクセスしていた既存のモデルにC++からアクセスできるようになる。その際も機能を損なう心配はないという。

 コンピュータビジョンモデル向けに「channels last」メモリフォーマットを実験導入した。性能効率の良い畳み込みアルゴリズムとハードウェアを活用できるとしている。

 新しいAPIとして、torch::class_が実験的に加わった。カスタムのC++クラスをTouchScriptとPythonに同時にバインドできる。シンタックスとしてはpybind11とほぼ同じで、C++クラスとメソッドをTorchScript型システムとランタイムシステムにエクスポーズし、任意のC++オブジェクトのインスタンス化と操作がTorchScriptとPythonより可能になる。

 モデル並列トレーニングで使用する分散RPCフレームワークが安定扱いとなった。1.4で実験扱いで導入した機能で、PyTorchの関数をリモートにあるマシンで動かすメカニズムを提供する。ユーザーがリモートにあるノードで走らせる関数を特定できるRPC APIも備える。

 このほか、複数のノードにまたがるautogradグラフを接続するDistributed Autogradも加わった。

 PyTorch 1.5はプロジェクトのWebサイトより入手できる。

PyTorch
https://pytorch.org/