共通

コンフィグ

コンフィグファイルを検索して、コンフィグファイルからコンフィグ情報を入手してください。

コンフィグファイルの検索順序については、次の表に記載しています。各コンフィグの値は下記のコンフィグで上書きされます。

Type

Posix

Windows

System wide

/etc/nnabla.conf

c:\ProgramData\NNabla\nnabla.ini

User

~/.nnabla

c:\Users\[USERNAME]\AppData\Roaming\NNabla\nnabla.ini

Default

( ‘config.py’ と同じディレクトリ ) / nnabla.conf

Local

[CURRENT DIRECTORY]/nnabla.conf

以下のようにコンフィグの値を取得することができます。

from utils.config import nnabla_config
value = nnabla_config.get(CATEGORY, VALUE_NAME)

CATEGORY と VALUE_NAME は、 config.py 内で定義されていません。 CATEGORY と VALUE は自由に追加できます。詳細については、 公式ドキュメント を参照してください。

[CATEGORY]
VALUE_NAME = value

これは、 config.py と同じディレクトリにある 'nnabla.conf' 内で定義されているデフォルト値です。

ロガー

ログのためのラッパーモジュール。

次のようなロガーを使うことができます。

from utils.logger import logger

logger.debug('Log message(DEBUG)')
logger.info('Log message(INFO)')
logger.warning('Log message(WARNING)')
logger.error('Log message(ERROR)')
logger.critical('Log message(CRITICAL)')

デフォルトの設定では、以下の出力となります。

$ python scripts/logger_test.py
[nnabla][ERROR]: logger_test.py : <module> : 5 : Log message(ERROR)
[nnabla][CRITICAL]: logger_test.py : <module> : 6 : Log message(CRITICAL)

ログをファイルに出力したい場合は、 nnabla.conf ファイルを生成し、以下のエントリを記載する必要があります。

コンフィグファイルの詳細については、 nnabla.config を参照してください。

[LOG]
log_file_name = /tmp/nbla.log

その後、以下にように出力されます。

$ python scripts/logger_test.py
[nnabla][ERROR]: logger_test.py : <module> : 5 : Log message(ERROR)
[nnabla][CRITICAL]: logger_test.py : <module> : 6 : Log message(CRITICAL)
$ cat /tmp/nbla.log
2017-01-19 14:41:35,132 [nnabla][DEBUG]: scripts/logger_test.py : <module> : 3 : Log message(DEBUG)
2017-01-19 14:41:35,132 [nnabla][INFO]: scripts/logger_test.py : <module> : 4 : Log message(INFO)
2017-01-19 14:41:35,132 [nnabla][ERROR]: scripts/logger_test.py : <module> : 5 : Log message(ERROR)
2017-01-19 14:41:35,132 [nnabla][CRITICAL]: scripts/logger_test.py : <module> : 6 : Log message(CRITICAL)
nnabla.logger.logger

<Logger nnabla (INFO)>の別名です。

Auto-forward モード

NNabla は動的計算グラフの機能を提供し、グラフの構築中に自動フォーワードプロパゲーションを可能にします。これは、 set_auto_forward() 関数を使うことで可能になります。バックプロパゲーションは動的に構築されたグラフにおいて手動で実行されます。

nnabla.auto_forward(auto=True)

動的グラフ実行モードのコンテキスト。

パラメータ:

auto (bool) -- 計算グラフの構築中に順方向の計算が実行されるかどうか。

nnabla.set_auto_forward(auto)

自動フォーワードプロパゲーションに対してデフォルトのモードをセットします。

True をセットした場合、計算グラフが更新されるとすぐにフォワードプロパゲーションが呼び出されます。

パラメータ:

auto (bool) -- 計算グラフが更新される時、順方向の計算が実行されるかどうか。

nnabla.get_auto_forward()

自動フォワード実行の状態を取得します。

true のとき、計算グラフの定義中にフォワード実行が呼び出されます。

戻り値:

Auto-forward flag

戻り値の型:

bool

注釈

自動フォワード実行は、通常ユーザーによって呼び出されます。

コンテキスト

class nnabla.Context(backend=None, array_class='', device_id='0')

コンテキストは、関数オペレーターモジュールと最適化モジュールが実行される計算エンジン ( cpu、 cuda、 cudnn など ) を指定するために使われます。コンテキストは、各関数に対してセットすることが可能であり、また、 context-specifier() に列挙されている関数を使って広く全体的にセットすることも可能です。

パラメータ:
  • backend (list of str) -- 'cpu' 、 'cuda' 、 'cudnn' など。

  • array_class (str) -- str 、 'CpuArray' 、 'CpuCachedArray' 、 'CudaArray' 、 'CudaCachedArray' など。

  • device_id (str) -- str 、 デフォルト ‘0’

コンテキスト指定子 API

nnabla.context_scope(ctx)[ソース]

Python コンテキストとしてのコンテキスト。

import nnabla as nn
import nnabla.functions as F
x = nn.Variable([2, 3 ,4])
ctx = nnabla_ext.cuda.context('0')
with context_scope(ctx):
    # Inside with scope, the specified context is used.
    with parameter_scope('w1'):
        l1 = F.relu(F.affine(x, 64))
    with parameter_scope('w2'):
        l2 = F.relu(F.affine(x, 64))
nnabla.set_default_context(ctx)[ソース]

デフォルトのコンテキストをセットします。

注釈

context_scope 内で呼び出すことができません。

パラメータ:

ctx (Context) -- コンテキスト。

nnabla.get_current_context()[ソース]

現在のコンテキストを取得します。

nnabla.context_scope()nnabla.set_default_context() を使ってセットすることができます。

戻り値:

現在のコンテキスト。

戻り値の型:

Context