Neural Network Libraries v1.9.0をリリースしました!日本語版ドキュメントが公開されました!さらにファイルフォーマットコンバーターがtflite形式をサポートするように!そしてExampleにはEfficientNetが追加されました!
スポットライト
日本語マニュアルの追加
Neural Network Librariesの日本語版ドキュメントが公開されました!上記のリンクから日本語版のドキュメントが閲覧可能となっています。一部未翻訳の部分が残っている状態ではありますが、今後のリリースにあわせてより充実したものになっていきます。
Example: EfficientNetの追加
2019年にGoogleの研究者たちによって考案されたモデルであるEfficientNetがExampleとして追加されました!このモデルは新たな手法でCNNの解像度や特徴マップ数、層数をスケーリングさせ、軽量かつ高精度である効率的なネットワークを実現したものになっています。EfficientNetはパラメータ数やFLOPsに応じてさまざまな構造が定義されていますが、今回追加されたものはその一部(B0, B1, B2, B3)となっています。また、これらのモデルを用いてImageNetを学習させた結果や学習済みパラメータも公開していますので、ぜひご活用ください!
ファイルフォーマットコンバーターのtflite対応
これまでもファイルフォーマットコンバーターを用いることでNeural Network Librariesで作成したモデル(.nnp
ファイル形式)をTensorFlowのモデル(.pb
ファイル)へ変換することができましたが、本バージョン以降コンバーターがTensorFlow Liteモデルへの変換にも対応しました!変換の方法についてはドキュメントをご覧ください。
デフォルト値などの変更
バグ修正
- ref_dequantize_linear / ref_grad_dequantize_linearに**kw argsを追加
- FusedConvolutionインターフェースの追加および機能強化/修正
- logのダブルバックワード修正
- FFT/IFFTの複数回呼び出しの許可/エラーのキャッチ
- オーバーフロー対策のためデータ型をint64に
ビルド関連
ドキュメントの追加・修正
- 日本語版ドキュメントの追加
- warp_by_flowのドキュメントの修正 documentation
- ドキュメント修正
- コンバーターのドキュメントの更新
- MNISTチュートリアルの追加
- DCGANチュートリアルの追加
- ブランドネーム修正
フォーマットコンバーターの機能改善
- ONNX Exporter: PReLU修正
- ONNX Exporter: deconvolutionのoutput_paddingサポート
- ONNX Exporter: Broadcastの修正
- functions.yamlとAPIレベルの更新
- fixed-point convolutionのint8 / int16サポート
- NNablaのモデルをTensorFlow Liteモデルにコンバート可能に
- Cランタイム: 未実装関数呼び出し時にエラーを出力
レイヤー関数の新規追加・改善
- Quantize/DequantizeLinear関数追加 (CPU / CUDA)
- deconvolutionにoutput paddingオプションを追加 (CPU / CUDA)
- F.interpolationにhalf_pixel / half_pixel_for_nnオプションを追加 (CPU / CUDA)
ユーティリティの機能改善
- オプティマイザチェックポイントを.h5ファイルで保存
- cuDNNのアルゴリズム選択手法の変更による推論時のパフォーマンス向上
- load.pyにAdamW / Lars / SgdWを追加
- psutilとpynvmlがインストールされている場合cpu/gpu負荷率を計測・記録
- cg_loadの情報の保存先をログからprogress.txt / status.jsonに変更
- 各エポックでオプティマイザのstateを保存
- SNPE: Unpooling修正
- .h5ファイル書き込み時のエラー修正
- monitorにsliced dataを使用
- nnpで.h5ファイル読み込む際のバグ修正
- ローカルランクからデバイスIDを取得
- allreduce使用時のスレッドベースのwatchdogの廃止
- convolution演算時に使用するアルゴリズムを選ぶフラグの追加
Exampleの新規追加
マルチGPU版パッケージに関する重要な変更
本バージョン1.9.0をもちまして、以下のマルチGPU対応パッケージがDeprecatedとなります。
nnabla-ext-cuda90-nccl2-ubuntu16
nnabla-ext-cuda100-nccl2-ubuntu16
nnabla-ext-cuda100-nccl2-ubuntu18
nnabla-ext-cuda101-nccl2-ubuntu16
nnabla-ext-cuda101-nccl2-ubuntu18
かわりに以下のパッケージをインストールする必要があります。ご利用のOS/MPIのバージョンにあわせた適切なパッケージを選択するようお願いします。
nnabla-ext-cuda90-nccl2-mpi1-10-2 (Ubuntu16.04 default)
nnabla-ext-cuda90-nccl2-mpi2-1-1 (Ubuntu18.04 default)
nnabla-ext-cuda90-nccl2-mpi3-1-6
nnabla-ext-cuda100-nccl2-mpi1-10-2 (Ubuntu16.04 default)
nnabla-ext-cuda100-nccl2-mpi2-1-1 (Ubuntu18.04 default)
nnabla-ext-cuda100-nccl2-mpi3-1-6
nnabla-ext-cuda102-nccl2-mpi1-10-2 (Ubuntu16.04 default)
nnabla-ext-cuda102-nccl2-mpi2-1-1 (Ubuntu18.04 default)
nnabla-ext-cuda102-nccl2-mpi3-1-6
apt install openmpi-bin して使えるUbuntuバージョンとパッケージの組み合わせは
Ubuntu16.04: nnabla-ext-cuda???-nccl2-mpi1-10-2
Ubuntu18.04: nnabla-ext-cuda???-nccl2-mpi2-1-1
となります。