検索
ニュース

Python向けライブラリ「Chainer」「CuPy」の最新版をPreferred Networksが公開混合精度学習への対応強化など

Preferred Networksは、深層学習フレームワーク「Chainer」と、汎用配列計算ライブラリ「CuPy」の最新版「v6」を公開した。「ChainerX」の統合や混合精度学習への対応強化などを施した。

Share
Tweet
LINE
Hatena

 Preferred Networksは2019年5月16日、同社が開発するオープンソースの深層学習フレームワーク「Chainer」と、汎用(はんよう)配列計算ライブラリ「CuPy」の最新版「v6」を公開した。「Chainer v6」では、「v5」までの旧バージョンのコードをほとんど変更せずにそのまま動作可能だとしている。

 ChainerとCuPyは、いずれもPython向けのライブラリだ。v6は「ChainerX」の統合や混合精度学習への対応強化、FunctionやLinkのテストツール追加、NumPy関数へのCuPy配列対応といった機能を追加、強化した。ChainerXは、C++で実装したn次元配列の自動微分ライブラリ。

画像
GitHubのChainerリリースノート

アンダーフローを回避する「動的スケーリング」も実装

 Chainer v6はChainerXを統合し、Chainerの柔軟性や後方互換性をほぼ維持したまま処理性能を高めた。これにより、深層学習処理の「順伝ぱん」(Forward Propagation)と「逆伝ぱん」(Back Propagation)についてフレームワーク側オーバーヘッドの大幅な低減に成功したという。

 さらに、ChainerXの配列をNumPyやCuPyの配列と同じように使える互換レイヤーを実装した。統合デバイス用のAPIを導入し、NumPyやCuPy、ChainerX、他にも「iDeep」といった複数のライブラリに対して、デバイス指定やデバイス間転送のインタフェースを統一した。

 一方、混合精度学習(機械学習において単精度と半精度の演算を組み合わせる学習手法)については、デフォルトデータ型として新たに「mixed16」型を追加し、混合精度専用のモードを導入した。混合精度学習でのアンダーフローを回避するため、オーバーフローを検出して自動調整する「動的スケーリング」も実装した。

 Preferred Networksは、今後も性能向上やバックエンドの拡充を進め、ChainerXの使い勝手を向上させ、対応する演算も拡充していくことで、より広い範囲のユースケースでの性能向上に貢献していきたいとしている。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る