sone neural network console の簡単な使い方(推論編)
jump1268.hatenablog.com
前回はNNCを使って学習をプログラミングなしでやりました。
今回は、学習に使ったモデルとパラメータを読み込み、推論するとこまでやります。
1:モデルコードのエクスポート
2:パラメータの読み込み
3:推論
の順番です。
1:モデルコードのエクスポート
この画面で右クリック
すると
となります。
export→pythonコードを選択。
これを自分が使ってる環境に張り付け。
このときreturnの前の
カテゴリークロスエントロピーを#でコメントアウトします
おしまい
2:パラメータの読み込み
この画面にして
良い評価だったファイルをダブルクリック
するとそのフォルダが開きます
その中のparameters.h5のパスをコピー
(右クリックのプロパティで場所をコピーします)
でプログラムを追加します
こんな感じ patの前にrをつけるとうまくいきます。
これで2もおしまい
3:推論
自分が推論したcsvファイルを下のように読み込みます
これでおけ
全体は
import nnabla as nn import nnabla.functions as F import nnabla.parametric_functions as PF def network(x, y, test=False): # Input:x -> 30,2 # Reshape -> 1,10,6 h = F.reshape(x, (x.shape[0],1,10,6)) # Convolution -> 16,9,9 h = PF.convolution(h, 16, (2,2), (0,2), name='Convolution') # ReLU h = F.relu(h, True) # MaxPooling -> 16,9,17 h = F.max_pooling(h, (1,1), (1,1), True, (0,4)) # PReLU h = PF.prelu(h, 1, False, name='PReLU') # Convolution_2 -> 15,7,15 h = PF.convolution(h, 15, (3,3), (0,0), name='Convolution_2') # MaxPooling_2 -> 15,3,7 h = F.max_pooling(h, (2,2), (2,2)) # Tanh_2 h = F.tanh(h) # Dropout if not test: h = F.dropout(h) # Affine -> 150 h = PF.affine(h, (150,), name='Affine') # ReLU_2 h = F.relu(h, True) # Affine_2 -> 5 h = PF.affine(h, (5,), name='Affine_2') # Softmax h = F.softmax(h) # CategoricalCrossEntropy -> 1 #h = F.categorical_cross_entropy(h, y) return h #ネットワークの構築 nn.clear_parameters() # Prepare input variable x = nn.Variable((1,30,2)) t = nn.Variable((1,1)) # Build network for inference y = network(x, t) nn.load_parameters(r'C:\Users\jump1268\sony\arduino\5times10deep.files\20181118_175114\parameters.h5') test_data = data_iterator_csv_dataset(r"C:\Users\jump1268\sony\many_kind\10_deep\valu.csv",1,shuffle=False,normalize=False) for i in range(test_data.size): x.d, t.d = test_data.next() y.forward() print(y.d[0])
これでNNCも完璧ですね。