コンテンツにスキップ

レイヤ・ルーチン操作コマンド

SoftNeuroのレイヤ・ルーチンに対する操作を行うためのコマンドの操作方法を解説します。
GPUなどを含めたマルチバックエンド環境において、利用可能なデバイス、レイヤ、ルーチンの確認を行うことができます。

plugins

追加ルーチンを利用するためのプラグインの管理を行います。 インストール済みのプラグインの一覧表示、プラグインのインストール・アンインストール、利用可能なプラグインの一覧の表示などを行うことができます。

使い方
softneuro plugins [--help] [-i PLUGIN] [-u PLUGIN] [-s]

オプション

オプション 効果
-h, --help 本コマンドのヘルプを表示します。
-i, --install PLUGIN PLUGIN で指定したプラグインをインストールします。 auto と指定すると適切なものを全て自動的にインストールします。
-u, --uninstall PLUGIN PLUGIN で指定したプラグインをアンインストールします。 all と指定するとインストール済みの全てのプラグインをアンインストールします。
-s, --status 利用可能なプラグインとそのインストール状況を一覧表示します。インストール状況の凡例は下記の表のとおりです。
シンボル 状態
I 正常にインストール済みな状態
C インストール済みだが両立できない他のプラグインが存在する状態
? インストール済みだが正常に実行できない可能性がある状態
なし インストールされていない状態

使用例
オプション無しで実行するとインストール済みのプラグインが確認できます。

$ softneuro plugins
plugin_avx2    AVX routines.
plugin_opencl  OpenCL routines.

次に他に利用可能なプラグインがないか確認します。下の例では、plugin_cudaが利用可能です。

$ softneuro plugins -s
I plugin_avx2
I plugin_opencl
  plugin_cuda

-i オプションを指定して、plugin_cuda プラグインを追加でインストールします。

$ softneuro plugin -i plugin_cuda
`plugin_cuda` is installed.

layers

利用可能なレイヤーの一覧を表示します。

使い方
usage: softneuro layers [--help]

オプション

オプション 効果
-h, --help 本コマンドのヘルプを表示します。

使用例

$ softneuro layers
adaptive_unit_scale
add
ave_pool2
batch_norm
box_filter
 :

lparams

レイヤーパラメータとそのデフォルト値の一覧を表示します。

使い方
usage: softneuro lparams [--help] LAYER

引数

引数名 内容
LAYER パラメータの一覧を表示するレイヤー名を指定します。

オプション

オプション 効果
-h, --help 本コマンドのヘルプを表示します。

使用例

$ softneuro lparams conv2
{'padding': 'valid', 'pads': 0, 'dilations': 1, 'strides': 1, 'has_relu': false, 'relu_max_value': -1.0}

routines

実行環境で実行可能なスキーマを表示します。 実行環境で実行可能なルーチンを表示します。

使い方
usage: softneuro routines [--help] LAYER

引数

引数名 内容
LAYER 実行可能なルーチンの一覧を表示するレイヤー名を指定します。指定しない場合、スキーマを表示します。

オプション

オプション 効果
--help 本コマンドのヘルプを表示します。

使用例

$ softneuro routines conv2
cpu/naive
cpu/naive/wg2
cpu:chf/naive
cpu:qint8:pt_sym/naive
cpu:qint8:pt_asym/naive
cpu:qint8:pc_sym/naive
cpu:qint8:pc_asym/naive
cpu:qint8/naive
cpu/wg2
 :

rparams

ルーチンパラメータとそのデフォルト値の一覧(レシピ)を表示します。

使い方
usage: softneuro rparams [--help] LAYER ROUTINE

引数

引数名 内容
LAYER パラメータの一覧を表示するルーチンを持つレイヤーを指定します。
ROUTINE パラメータの一覧を表示するルーチンを指定します。

オプション

オプション 効果
-h, --help 本コマンドのヘルプを表示します。

使用例

$ softneuro rparams conv2 cpu/wg3x3_nxn_avx
{'cache': [8192, 16384, 32768], 'task_unit': [4, 8, 16], 'tile_size': [2, 4, 6, 8]}

test

指定したレイヤーの動作テストを実行します。

使い方

usage: softneuro test [-o OUTPUT]... [--weight WNAME TENSOR]...[--thread NTHREADS]
                      [--affinity MASK[@IDS]]
                      [--params PARAMS][--routine ROUTINE] [--rparams RPARAMS]
                      [--loop NLOOPS] [--help]
                      LAYER [INPUT]...

引数

引数名 内容
LAYER 動作テストを実行するレイヤ。
INPUT 入力となるnumpyファイルまたはtensor specificationです。未指定時は[-1, 1]の乱数が入力となります。

オプション

オプション 効果
-o OUTPUT, --output OUTPUT 結果をnumpyファイルとして出力する際に指定するファイル名です。
--weight WNAME TENSOR WNAMEで指定したウエイトにTENSORを設定して実行します。テンソルはnumpyファイルまたはtensor specificationで指定します。未指定時は[-1, 1]の乱数が設定されます。 
--thread NTHREADS 処理を実行するスレッド数を設定できます。 指定のない場合はCPUのコア数と同じ数になります。
--affinity MASK[@THREAD_INDICES] MASKで指定したアフィニティマスクをTHREAD_INDICESで指定したスレッドに適用します。
THREAD_INDICESが指定されていない場合は全スレッドにアフィニティマスクが適用されます。
THREAD_INDICESの書式についてはsoftneuro help thread_indicesで表示されるヘルプを参照してください。
--params PARAMS レイヤパラメータをJSONで指定します。パラメータはlparamsコマンドで確認できます。
-r ROUTINE, --routine ROUTINE ルーチンを設定して実行します。 設定しない場合はcpuとなります。実行可能なルーチンはroutinesコマンドで確認できます。
--rparams RPARAMS ルーチンパラメータをJSONで指定します。指定可能なパラメータはrparamsコマンドで確認できます。
-l NLOOPS, --loop NLOOPS 指定した回数だけ動作テストを繰り返します。
-h, --help 本コマンドのヘルプを表示します。

使用例

$ softneuro test -o out.npy --weight kernel "shape=3x3x128x128" --weight bias "shape=128" --params '{"padding": "valid", "stride": 2}' --routine "cpu/fast"  conv2 "shape=1x64x64x128"

---------------------------------
Statistics
---------------------------------
FUNCTION       AVE(usec)  MIN(usec)  MAX(usec)  #CALL
Dnn_forward()      2,348      2,348      2,348      1

Used memory: 9,924,608 Bytes