pythonのchainerをインストールしたのですがchainer Finctionのシグモイド関数、またレル関数を使うとattribute error が出てしまいます。インストールをしたファイルを確認するとこれらは確かに中に入っておりました。
Chainer、またchainer functionのインストールは確かにうまくいっています。
以前と重複した質問になってしまいますが、いまだ解決策を見つけられていないため再度質問させて頂きました。
よろしくお願いいたします。
import numpy as np
import chainer
import chainer.function as F
import chainer.links as L
import chainer.initializers as I
from chainer import training
from chainer.training import extensions
class Mychain(chainer.Chain):
def init(self):
super(Mychain,self).init()
with self.init_scope():
self.l1=L.Linear(2,3)#入力層2,中間層3
self.l2=L.Linear(3,2)#中間層3,出力層2
def call(self,x):
h1=F.relu(self.l1(x))#レル関数
y=self.l2(h1)
return y
epoch=100
batchsize=4
#データの作成
trainx=np.array(([0,0],[0,1],[1,0],[1,1]),dtype=np.float32)
trainy=np.array([0,1,1,1],dtype=np.int32)
train=chainer.datasets.TupleDataset(trainx,trainy)
test=chainer.datasets.TupleDataset(trainx,trainy)
#ニューラルネットワークの登録
model=L.Classifier(Mychain(), lossfun=F.softmax_cross_entropy)
optimizer=chainer.optimizers.Adam()
optimizer.setup(model)
#イテレータの定義
train_iter=chainer.iterators.SerialIterator(train,batchsize)
test_iter=chainer.iterators.SerialIterator(test,batchsize,repeat=False,shuffle=False)
#アップデータの登録
updater=training.StandardUpdater(train_iter,optimizer)
#トレーナーの登録
trainer=training.Trainer(updater,(epoch,'epoch'))
#学習状況の表示や保存
trainer.extend(extensions.LogReport())#ログ
trainer.extend(extensions.Evaluator(test_iter,model))#エポック数の表示
trainer.extend(extensions.PrintReport(['epoch','main/loss','validation/main/loss','main/accuracy','validation/main/accuracy','elapsed_time']))
trainer.extend(extensions.dump_graph('main/loss'))
trainer.extend(extensions.PlotReport)(['main/accuracy','validation/main/loss'],'epoch',filename='accuracy.png')
chainer.serializers.save_npz('result/out.model',model)
trainer.run
これを実行しようとしたところ以下のように出ました。
r import training
File "<stdin>", line 1
r import training
^
SyntaxError: invalid syntax
from chainer.training import extensions
class Mychain(chainer.Chain):
... def init(self):
... super(Mychain,self).init()
... with self.init_scope():
... self.l1=L.Linear(2,3)#入力層2,中間層3
... self.l2=L.Linear(3,2)#中間層3,出力層2
... def call(self,x):
... h1=F.relu(self.l1(x))#レル関数
... y=self.l2(h1)
... return y
... epoch=100
File "<stdin>", line 11
epoch=100
^
SyntaxError: invalid syntax
batchsize=4
#データの作成
... trainx=np.array(([0,0],[0,1],[1,0],[1,1]),dtype=np.float32)
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
NameError: name 'np' is not defined
trainy=np.array([0,1,1,1],dtype=np.int32)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'np' is not defined
train=chainer.datasets.TupleDataset(trainx,trainy)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'chainer' is not defined
test=chainer.datasets.TupleDataset(trainx,trainy)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'chainer' is not defined
#ニューラルネットワークの登録
... model=L.Classifier(Mychain(), lossfun=F.softmax_cross_entropy)
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
NameError: name 'L' is not defined
optimizer=chainer.optimizers.Adam()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'chainer' is not defined
optimizer.setup(model)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'optimizer' is not defined
#イテレータの定義
... train_iter=chainer.iterators.SerialIterator(train,batchsize)
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
NameError: name 'chainer' is not defined
test_iter=chainer.iterators.SerialIterator(test,batchsize,repeat=False,shuffle=False)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'chainer' is not defined
#アップデータの登録
... updater=training.StandardUpdater(train_iter,optimizer)
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
NameError: name 'training' is not defined
#トレーナーの登録
... trainer=training.Trainer(updater,(epoch,'epoch'))
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
NameError: name 'training' is not defined
#学習状況の表示や保存
... trainer.extend(extensions.LogReport())#ログ
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
NameError: name 'trainer' is not defined
trainer.extend(extensions.Evaluator(test_iter,model))#エポック数の表示
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'trainer' is not defined
trainer.extend(extensions.PrintReport(['epoch','main/loss','validation/main/loss','main/accuracy','validation/main/accuracy','elapsed_time']))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'trainer' is not defined
trainer.extend(extensions.dump_graph('main/loss'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'trainer' is not defined
trainer.extend(extensions.PlotReport)(['main/accuracy','validation/main/loss'],'epoch',filename='accuracy.png')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'trainer' is not defined
chainer.serializers.save_npz('result/out.model',model)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'chainer' is not defined
trainer.run
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'trainer' is not defined
& cmd /k "C:/Users/kinmu/Anaconda3/Scripts/activate.bat & powershell"
File "<stdin>", line 1
& cmd /k "C:/Users/kinmu/Anaconda3/Scripts/activate.bat & powershell"
^
SyntaxError: invalid syntax

回答1件
あなたの回答
tips
プレビュー