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

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

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

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

解決済

MiddleLayer() takes no argumentsについて

tadapolice
tadapolice

総合スコア0

Python

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

1回答

0評価

0クリップ

16閲覧

投稿2019/05/08 13:56

教科書のコードと入力したところ表題のようなエラーがでます.
ご教授お願いできますでしょうか?

In [29]:

1

2
%matplotlib inline

3

4
import numpy as np

5
import matplotlib.pyplot as plt

6

7
input_data = np.arange(0,np.pi*2,0.1)

8
correct_data = np.sin(input_data)

9
input_data = (input_data-np.pi)/np.pi

10
n_data = len(correct_data)

11

12
n_in = 1

13
n_mid = 3

14
n_out = 1

15

16
wb_width = 0.01

17
eta = 0.1

18
epoch = 2001

19
interval = 200

20

21
class MiddleLayer:

22
def int(self,n_upper,n):

23
self.w = wb_width*np.random.randn(n_upper,n)

24
self.b = wb_width*np.random.randn(n)

25
def forward(self,x):

26
self.x = x

27
u = np.dot(x,self.w) + self.b

28
self.y = 1/(1+np.exp(-u))

29
def backward(self,grad_y):

30
delta = grad_y * (1-self.y)*self.y

31
self.grad_w=np.dot(self.x.T,delta)

32
self.grad_b=np.sum(delta,axis=0)

33

34
self.grad_x=np.dot(delta,self.w.T)

35
def updata(self,eta):

36
self -=eta*self.grad_w

37
self.b -=eta*self.grad.b

38

39
class OutputLayer:

40
def int(self,n_upper,n):

41
self.w = wb_width*np.random.randn(n_upper,n)

42
self.b = wb_width*np.random.rand(n)

43

44
def foward(self,x):

45
self.x=x

46
u=np.dot(x,self.w)+self.b

47
self.y=u

48

49
def backward(self,t):

50
delta=self.y-t

51

52
self.grad_w=np.dot(self.x.T,delta)

53
self.grad_b=np.sum(delta,self.w.T)

54

55
def updata(self,eta):

56
self.w-=eta*self.grad_w

57
self.b-=eta*self.grad_b

58

59
middle_layer = MiddleLayer(n_in,n_mid)

60
output_layer = OutputLayer(n_mid,n_out)

61

62
for i in range(epoch):

63

64
index_random = np.arange(n_data)

65
np.random.shuffle(index_random)
66

67
total_error = 0

68
plot_x=[]

69
plot_y=[]

70

71
for idx in index_random:
72

73
x=input_data[idx:idx+1]

74
t=correct_data[idx:idx+1]

75

76
middle_layer.forward(x.reshape(1,1))

77
output_layer.forward(middle_layer.y)
78

79
output_layer.backward(t.reshape(1,1))

80
middle_layer.backward(output_layer.grad_x)

81

82
middle_layer.updata(eta)

83
output_layer.updata(eta)

84

85
if i%interval==0:

86
y=output_layer.y.shape(-1)

87

88
total_error += 1.0/2.0*np.sum(np.square(y-t))

89

90
plot_x.append(x)

91
plot_y.append(y)
92

93
if i%interval==0:

94

95
plt.plot(input_data,correct_data,limestyle="dashed")
96
plt.scatter(plot_x,plot_y,marker="+")
97
pltshow()
98
print("Epoch:"+str(i)+"/"+str(epoch),"Error:"+str(total_error/n_data))


TypeError Traceback (most recent call last)
<ipython-input-29-d29584c2fd2f> in <module>
57 self.b-=eta*self.grad_b
58
---> 59 middle_layer = MiddleLayer(n_in,n_mid)
60 output_layer = OutputLayer(n_mid,n_out)
61

TypeError: MiddleLayer() takes no arguments

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Python

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