質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2682閲覧

Pythonのchainerについて

babbleman

総合スコア107

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/10/20 15:00

編集2018/10/21 14:21

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2018/10/20 15:07

コードとエラーメッセージ(スタックトレース含む)をそれぞれ全文掲載してください
babbleman

2018/10/21 14:13

すみません、お待たせしました。 一応全文載せさせていただきます(すごく長いです)
hayataka2049

2018/10/21 14:22

コードやメッセージでは<code>ボタンで挿入できるコードブロックの中に入れてください
hayataka2049

2018/10/22 06:03

SyntaxErrorで落ちているのはattribute error以前の問題ですし、というかそもそもなんで対話的インタプリタから実行しているんですか?
babbleman

2018/10/22 07:25

回答ありがとうございます。対話型ではない実行ってなんでしょうか?今まではVSCODEで書いたものをコマンドプロンプト上で再現しておりました。ただ、VSCODE上で実行するとこのように出てしまいます。どこから実行するのが適切ですか?
hayataka2049

2018/10/22 07:27

入門書の最初の20ページくらい、python入門サイト的なところの2,3ページ目に載っているような話なのですが。新しい質問の回答にも書きましたが、やっぱり基本的なところから勉強した方が良いかと思います。
babbleman

2018/10/22 07:34

回答ありがとうございます。言われた通り、買ってあった入門書を今から全て読んでみる事とします。ただ、この入門書には実行形式?のような説明はありませんでした。何か説明してあるサイトなどはありますでしょうか?
hayataka2049

2018/10/22 07:48 編集

私にそれを聞いても、私はググって出てきた上位何件かを貼るという不毛な作業をするだけなので、ご自身で検索してください。「python 実行方法」とかで。環境によって差異がありますから自分の環境に合ったサイトを探してください
guest

回答1

0

自己解決

Functionsの中にありました

投稿2018/11/08 13:18

babbleman

総合スコア107

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問