アラカン"BOKU"のITな日常

文系システムエンジニアの”BOKU”が勉強したこと、経験したこと、日々思うことを書いてます。

ソニーのニューラルネットワークコンソールがバージョンアップしました!/使い方24

ニューラルネットワークコンソールの新しいバージョン(Ver1.10)がリリースされました。

 

前の記事で、クラウド版は新しいバージョンベースみたいだと書いてましたので、やっと・・という感じです。

arakan-pgm-ai.hatenablog.com

 

さっそく、ダウンロードしてみます。

dl.sony.com

 

上記にアクセスして、以下の画面で「個人情報の取扱について」を読んでメールアドレスを入力して送信します。

f:id:arakan_no_boku:20171116202045j:plain

 

しばらくすると、入力したメールアドレス宛にメールが送られてくるので、そのメールの「Download the windows App」ボタンで、ダウンロードします。

f:id:arakan_no_boku:20171115195613j:plain

 

ファイルが大きいので少し時間がかかりますが、「neural_network_console_110.zip」というファイルがダウンロードできます。

 

これを解凍します・・って、まんま、初期インストールの手順です。

 

解凍してできたフォルダを、適当な場所("BOKU"は、C:\直下に置きます)にコピーします。

 

前のバージョンで色々とプロジェクトやデータ・セットを作っていたので、うまいこと上書きでUPDATEできないかな?と思ったのですが、あれこれ悩むより、別フォルダに新しいバージョンをインストールして使う必要がある時に、参照した方が速いと考えて、特になにもしてません。

 

とりあえず、立ち上げてみます。

f:id:arakan_no_boku:20171115213121j:plain

 

全体的なデザインはあまり変わってません。

f:id:arakan_no_boku:20171115213327j:plain

 

 

ニュースリリースに「本バージョンではユーザの皆様から寄せられたご意見、ご要望などを元に、多数の細かな改善を行っています。」とありました。

 

どのあたりが、変わっているのかは、おいおい見ていくことにします。

 

とりあえず、”BOKU"が一番気になるのは、ニューラルネットワークコンソールで設計したモデルをNNabla(Neural Network Libraries)で再利用するためのEXPORT機能の改善箇所です。

 

前の記事でも何回か書いてますが、前のバージョンだと、EXPORTしたpythonソースコードに、import文とか、return文とかが欠けていて、自分で書き足してやる必要がありましたから。

 

早速、プロジェクトをひらいてやってみます。

 

とりあえず、サンプルのLeNet.sdcprjを選んでみました。

f:id:arakan_no_boku:20171115214929j:plain

 

ここで、ACTIONからEXPORT>python Code(NNabla)を選びます。

f:id:arakan_no_boku:20171115215011j:plain

 

 

クリップボードにコピーしたという英語のメッセージが表示されるので、それを適当なエディタにはりつけて確認してみます。

import nnabla as nn
import nnabla.functions as F
import nnabla.parametric_functions as PF

def network(x, y, test=False):
    # Input -> 1,28,28
    # Convolution -> 16,22,22
    with nn.parameter_scope('Convolution'):
        h = PF.convolution(x, 16, (7,7), (0,0))
   # ReLU
   h = F.relu(h, True)
    # MaxPooling -> 16,11,11
    h = F.max_pooling(h, (2,2), (2,2), True)
    # Convolution_2 -> 30,9,9
    with nn.parameter_scope('Convolution_2'):
        h = PF.convolution(h, 30, (3,3), (0,0))
    # MaxPooling_2 -> 30,4,4
    h = F.max_pooling(h, (2,2), (2,2), True)
    # Tanh_2
    h = F.tanh(h)
    # Affine -> 150
    with nn.parameter_scope('Affine'):
        h = PF.affine(h, (150,))
    # ReLU_2
    h = F.relu(h, True)
    # Affine_2 -> 10
    with nn.parameter_scope('Affine_2'):
        h = PF.affine(h, (10,))
    # Softmax
    h = F.softmax(h)
    # CategoricalCrossEntropy -> 1
    h = F.categorical_cross_entropy(h, y)
    return h

 

ちゃんと、import文もreturn文も出力されていますね。

 

改善されています。

 

他にも、一つ一つ見ていくと、新しいレイヤーがあったりとか色々ありそうです。

 

また、しばらく、新しい機能とか探しながら遊べそうですね。

 

2017/12/01追記

エンジンが改善されているのか、同じサンプルプロジェクトを同じデータで動かしても、Version1.00の時より、Accuracyが向上するものが多い気がしますね。

 

関連情報

ニューラルネットワークコンソールの記事一覧はこちらです。

arakan-pgm-ai.hatenablog.com

NNabla関連の記事一覧はこちらです。

arakan-pgm-ai.hatenablog.com

f:id:arakan_no_boku:20171115215731j:plain