2017年 02月 21日
class DigitsChain(Chain):
def __init__(self):
super(DigitsChain, self).__init__(
l1=L.Linear(64,32), # 1-2層
l2=L.Linear(32,10), # 2-3層
)
def __call__(self,x,y):
return F.mean_squared_error(self.fwd(x), y)
def fwd(self,x):
h1 = F.sigmoid(self.l1(x))
h2 = self.l2(h1)
return h2
今までのファイルは、「学習&セーブ」と「ロード&テスト」の2つのファイルに別れる。from digitschain import DigitsChain
ということで、実際にimportしてみた。
>>> from digitschain import DigitsChain Traceback (most recent call last): File "クラスだけのファイルはダメだった。", line 1, in File "/home/fuji/Study/Python/Chainer/digitschain.py", line 11, in class DigitsChain(Chain): NameError: name 'Chain' is not defined >>>
from chainer import Chain
の1行だけを加えたら、一応エラーは出なくなった。
# Define model
import numpy as np
import chainer
from chainer import cuda, Function, gradient_check, Variable
from chainer import optimizers, serializers, utils
from chainer import Link, Chain, ChainList
import chainer.functions as F
import chainer.links as L
class DigitsChain(Chain):
def __init__(self):
super(DigitsChain, self).__init__(
l1=L.Linear(64,32), # 1-2層
l2=L.Linear(32,10), # 2-3層
)
def __call__(self,x,y):
return F.mean_squared_error(self.fwd(x), y)
def fwd(self,x):
h1 = F.sigmoid(self.l1(x))
h2 = self.l2(h1)
return h2
さて、次回は、これをimport して、学習内容をファイルに書き出すことをやってみよう。