TOPアプリ/OS > PyTorch 1.0のRC版公開、JITコンパイルによる高...

アプリ/OS

PyTorch 1.0のRC版公開、JITコンパイルによる高速化に対応

2018/10/05

Serdar Yegulalp InfoWorld

 Torch Scriptの使い方は2つある。1つは、Torch Scriptで定められている言語要素を使ったコードを開発者が直接記述する方法。こちらは、直ちにネイティブコードへとコンパイルできる。もう1つは、Pythonの既存のコードに@torch.jit.traceというデコレーターを記述し、JITコンパイルでネイティブコードへとコンパイルする方法。こちらは、Torch Scriptを直接使う方法ほど効果的ではない。

 Torch Scriptのドキュメントには次のように説明されている。「PyTorchで使い慣れたツールを使ってモデルをトレーニングしたうえで、そのモデルを、パフォーマンスやマルチスレッド上の理由からPythonプログラムとして実行するのが適切ではない実稼働環境にエクスポートできる」

 Torch Scriptの手法は、Pythonのコードを高速化する既存の手法のいくつかにならったものだ。例えば、Anacondaのライブラリ「Numba」では、指定した関数をJITコンパイルや事前コンパイルでネイティブコードに変換できる。Numbaライブラリを使って生成するコードは、Numba自体がなくても動作するが、NumPyやPythonへのランタイム依存がある。

 また、Pythonの高速化によく使われているパッケージには「Cython」もある。独自の構文宣言を使って、Pythonのコードを部分的にC言語に変えることができる。Cythonは、PythonとC言語のあらゆる種類の型と、Pythonのすべての構文に対応している。Torch Scriptは、扱える型がTensor、int、floatなどに限られるという制約があるほか、例外などの構造も使えない。

(了)

翻訳:内山卓則=ニューズフロント
記事原文(英語)はこちら

↑ページ先頭へ