Neural Network Libraries v1.8.0をリリースしました!
スポットライト
NanInfTracer
任意のネットワークの演算実行時に発生したNanやInfを検出し、その発生個所を教えてくれるNanInfTracerを新しく追加しました。
以下のように、数行の追加で簡単に利用することが可能です。
pred = model(...)
from nnabla.utils.inspection import NanInfTracer
nit = NanInfTracer(trace_inf=True, trace_nan=True, need_details=True)
with nit.trace():
...
pred.forward(function_post_hook=nit.forward_post_hook)
pred.backward(function_post_hook=nit.backward_post_hook)
...
NanやInfの発生時には以下のようなメッセージが出力されます。
Error during forward propagation
Convolution
Convolution
Constant
Reshape
Div2 <-- ERROR
ValueError: The 0th output of the function 'Div2' (rank: 3) has nan or inf as its values.
Function details:
function type: Div2
shapes of inputs: ['(2, 4, 10, 10)', '(1, 1, 1, 1)']
shapes of outputs: ['(2, 4, 10, 10)']
function args: {}
ご自身でニューラルネットワークの構築を行う際に、どの関数の付近で想定外の演算が発生しているのか、今までよりも簡単にデバッグすることができます。
Inception Score / FID and LPIPS
GANなどに代表される生成モデルの定量評価に用いられるInception ScoreとFIDがNNablaで簡単に使えるようになりました!疑似的なCLIとして実行することができます(nnabla-examples/utils/neu
にパスを通す必要あり)。これらはニューラルネットワークで抽出した特徴量をもとに算出されるスコアであり、特徴量抽出に用いられるネットワーク構造とそのパラメータ(InceptionV3型のネットワークが使われています)はこれらのスコアを提案した研究者が用いたものと同じものを使っています。
# calculate Inception Score
python -m metrics.gan_eval.inception_score <path to the directory or text file>
# calculate FID
python -m metrics.gan_eval.fid <path to the directory, text file, or .npz file of REAL data> \
<path to the directory, text file, or .npz file of FAKE data> \
--params-path <path to the pretrained weights, can be omitted>
加えて、DNNで抽出した特徴量をもとに画像間の「知覚的」類似度を測るLPIPSも追加され、上記スコアと同様に簡単に使えるようになりました。
詳細はそれぞれのドキュメントをご覧ください。
NNabla TutorialがColabで試せるようになりました
これまでNotebookとして公開していたNNablaのチュートリアルがColabを利用して簡単に試せるようになりました!NNablaの基本的な特徴がわかるチュートリアルや、CIFAR10の分類、DCGANを用いた画像生成などを試すことができます。これからNNablaを使ってみようという方に特におすすめです。
ImageNet ExampleでMobileNet V1, V2, V3が使用可能に
ImageNetのExampleでMobileNetV1, V2, V3が利用可能になりました!また、それぞれの学習済みモデルもダウンロード可能になっています。
コア機能の追加・改善
バグ修正
ビルド関連
ドキュメントの追加・修正
フォーマットコンバーターの機能改善
レイヤー関数の新規追加・改善
ユーティリティの機能改善
- image_utilsで他のバックエンドを使う際の問題の修正
- image utilsのリファクタリング
- GraphProfilerにaccumulationフラグを追加
- multi_head_attentionのAPI変更
- CSVファイルからのオーディオデータ読み込みサポート
- ファイルライクオブジェクトの保存・読み込み
- NanInfTracerの追加 (CPU / CUDA)