質問するログイン新規登録

質問編集履歴

2

追記しました。

2021/04/26 12:34

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -4,8 +4,8 @@
4
4
  Qiitaの自分でニューラルネットワークを作ろうの記事https://qiita.com/takahiro_itazuri/items/d2bea1c643d7cca11352#comment-a59cd26161ee56ea1220
5
5
 
6
6
  これはニューラルネットワークの「精度測定」プログラムですが、これを用いて「画像認識」的なものの基盤を作りたいと思います。
7
- 具体的には、まず前半に自分のプログラム(指定された画像を読み込み、様々な方法で数値化してリストにする)を追加して、後半にこの記事のプログラムを適当な形にいじって、大体そのままで使いたいのです。
8
7
 
8
+
9
9
  そこでなのですが、記事のプログラムの
10
10
 
11
11
  ```python
@@ -29,7 +29,7 @@
29
29
  val = training_data_list[i].split(',')
30
30
  の部分の、training_data_list[i]を自分の作ったデータに変えて読み込みたいのですが、
31
31
  その自分のデータというのが、紛らわしいのですが同じ名前でtraining_data_listというのですが、それをprintした結果print(training_data_list)は、
32
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 1, 1, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 6, 0, 0, 10, 2, 2, 2, 2, 2, 2, 2, 2, 10, 10, 2, 2, 2, 2, 2, 2, 2, 2, 10]
32
+ [0,・・・ 10]
33
33
  これになります。
34
34
  また、このデータを用いるために、記事のプログラムの
35
35
  inodes = 784
@@ -38,9 +38,9 @@
38
38
  に変更しています(,の数が59個だから)。
39
39
 
40
40
  ここで、まずこの記事のプログラムは、training_data.csvという、
41
- 5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,18,18,18,126・・・略
42
- 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,159,253,159,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48・・・略
43
- 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67・・・略
41
+ 5,0・・・18,126・・・略
42
+ 0,・・・0,48・・・略
43
+ 4,0,・・・0,0,0,0,0,67・・・略
44
44
  まぁ大体こんな感じのデータを読み込んでいてtraining_data_listにしているらしく、その読み込み方としては、
45
45
  training_data_list[0]に1行目、training_data_list[1]に2行目、training_data_list[3]に3行目・・・みたいにしているようです。
46
46
 
@@ -50,7 +50,7 @@
50
50
  print(val)
51
51
  ```
52
52
  すると、
53
- ['5', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '3', '18', '18', '18', '126', '136', '175', '26', '166', '255', '247', '127', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '30', '36', '94', '154', '170', '253', '253', '253', '253', '253', '225', '172', '253', '242', '195', '64', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '49', '238', '253', '253', '253', '253', '253', '253', '253', '253', '251', '93', '82', '82', '56', '39', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '18', '219', '253', '253', '253', '253', '253', '198', '182', '247', '241', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '80', '156', '107', '253', '253', '205', '11', '0', '43', '154', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '14', '1', '154', '253', '90', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '139', '253', '190', '2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '11', '190', '253', '70', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '35', '241', '225', '160', '108', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '81', '240', '253', '253', '119', '25', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '45', '186', '253', '253', '150', '27', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '16', '93', '252', '253', '187', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '249', '253', '249', '64', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '46', '130', '183', '253', '253', '207', '2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '39', '148', '229', '253', '253', '253', '250', '182', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '24', '114', '221', '253', '253', '253', '253', '201', '78', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '23', '66', '213', '253', '253', '253', '253', '198', '81', '2', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '18', '171', '219', '253', '253', '253', '253', '195', '80', '9', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '55', '172', '226', '253', '253', '253', '253', '244', '133', '11', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '136', '253', '253', '253', '212', '135', '132', '16', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0\n']
53
+ ['5',・・・ '0', '0\n']
54
54
 
55
55
  ['0', ・・・(略)・・・ '0', '0\n']
56
56
 
@@ -59,7 +59,7 @@
59
59
  のようになります、上から、forの1周目、2周目,3周目という事かと、また、1周目は全て表示しましたが、2,3周目は省略しています。
60
60
 
61
61
  で、自分のデータ(同名の、training_data_list)は
62
- [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 1, 1, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 6, 0, 0, 10, 2, 2, 2, 2, 2, 2, 2, 2, 10, 10, 2, 2, 2, 2, 2, 2, 2, 2, 10]
62
+ [0, ・・・ 10]
63
63
  これであるので、単純に「1行目」しか存在しません。後に2,3,4行目も作っていきたいのですが、今は1行目だけ、つまりforで回すのは1周分という事になります。
64
64
  1周だとforの必要はありませんが、今後の事も考えてforを残しておきたい、しかし、これを上手く変換する方法が分かりません。
65
65
 
@@ -97,4 +97,133 @@
97
97
 
98
98
  これって、行列の掛け算定義不能って事なんですかね??問題はそこだけ?
99
99
 
100
- どうすればいいのかな。
100
+ どうすればいいのかな。
101
+
102
+ 一応この部分については解決しました、で、この後なんですが、
103
+
104
+ ```python
105
+ # テスト
106
+ scoreboard = []
107
+ for record in test_data_list:
108
+ idata = (np.array(test_data_list) / 255.0 * 0.99) + 0.01
109
+ predict = nn.feedforward(idata)
110
+ plabel = np.argmax(predict)
111
+ print(predict)
112
+ print(plabel)
113
+ pass
114
+ ```
115
+
116
+ このように、predict,plabelをprintしてみました、その結果が以下です。
117
+
118
+ Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount("/content/drive", force_remount=True).
119
+ #epoch 0
120
+ train: 0 / 60
121
+ #epoch 1
122
+ train: 0 / 60
123
+ #epoch 2
124
+ train: 0 / 60
125
+ [[1.90071670e-02]
126
+ [1.31633748e-02]
127
+ [1.80385474e-02]
128
+ [1.57785464e-02]
129
+ [2.16556495e-02]
130
+ [2.28404329e-02]
131
+ [2.20554863e-02]
132
+ [2.04877793e-02]
133
+ [1.74221735e-02]
134
+ [5.64875592e-05]]
135
+ 5
136
+ [[1.90071670e-02]
137
+ [1.31633748e-02]
138
+ [1.80385474e-02]
139
+ [1.57785464e-02]
140
+ [2.16556495e-02]
141
+ [2.28404329e-02]
142
+ [2.20554863e-02]
143
+ [2.04877793e-02]
144
+ [1.74221735e-02]
145
+ [5.64875592e-05]]
146
+ 5
147
+ ・・・
148
+ 5
149
+ [[1.90071670e-02]
150
+ [1.31633748e-02]
151
+ [1.80385474e-02]
152
+ [1.57785464e-02]
153
+ [2.16556495e-02]
154
+ [2.28404329e-02]
155
+ [2.20554863e-02]
156
+ [2.04877793e-02]
157
+ [1.74221735e-02]
158
+ [5.64875592e-05]]
159
+ 5
160
+ [[1.90071670e-02]
161
+ [1.31633748e-02]
162
+ [1.80385474e-02]
163
+ [1.57785464e-02]
164
+ [2.16556495e-02]
165
+ [2.28404329e-02]
166
+ [2.20554863e-02]
167
+ [2.04877793e-02]
168
+ [1.74221735e-02]
169
+ [5.64875592e-05]]
170
+ 5
171
+ [[1.90071670e-02]
172
+ [1.31633748e-02]
173
+ [1.80385474e-02]
174
+ [1.57785464e-02]
175
+ [2.16556495e-02]
176
+ [2.28404329e-02]
177
+ [2.20554863e-02]
178
+ [2.04877793e-02]
179
+ [1.74221735e-02]
180
+ [5.64875592e-05]]
181
+ 5
182
+ [[1.90071670e-02]
183
+ [1.31633748e-02]
184
+ [1.80385474e-02]
185
+ [1.57785464e-02]
186
+ [2.16556495e-02]
187
+ [2.28404329e-02]
188
+ [2.20554863e-02]
189
+ [2.04877793e-02]
190
+ [1.74221735e-02]
191
+ [5.64875592e-05]]
192
+ 5
193
+ [[1.90071670e-02]
194
+ [1.31633748e-02]
195
+ [1.80385474e-02]
196
+ [1.57785464e-02]
197
+ [2.16556495e-02]
198
+ [2.28404329e-02]
199
+ [2.20554863e-02]
200
+ [2.04877793e-02]
201
+ [1.74221735e-02]
202
+ [5.64875592e-05]]
203
+ 5
204
+ [[1.90071670e-02]
205
+ [1.31633748e-02]
206
+ [1.80385474e-02]
207
+ [1.57785464e-02]
208
+ [2.16556495e-02]
209
+ [2.28404329e-02]
210
+ [2.20554863e-02]
211
+ [2.04877793e-02]
212
+ [1.74221735e-02]
213
+ [5.64875592e-05]]
214
+ 5
215
+ [[1.90071670e-02]
216
+ [1.31633748e-02]
217
+ [1.80385474e-02]
218
+ [1.57785464e-02]
219
+ [2.16556495e-02]
220
+ [2.28404329e-02]
221
+ [2.20554863e-02]
222
+ [2.04877793e-02]
223
+ [1.74221735e-02]
224
+ [5.64875592e-05]]
225
+ 5
226
+ performance: nan
227
+ /usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:160: RuntimeWarning: invalid value encountered in double_scalars
228
+
229
+ これが何を意味しているのか、今後どのように変更を加えれば良いのか、模索中です、ヒントをください。

1

補足しました。

2021/04/26 12:34

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -28,9 +28,14 @@
28
28
  ここの、
29
29
  val = training_data_list[i].split(',')
30
30
  の部分の、training_data_list[i]を自分の作ったデータに変えて読み込みたいのですが、
31
- その自分のデータというのが、紛らわしいのですが同じ名前でraining_data_listというのですが、それをprintした結果print(raining_data_list)は、
31
+ その自分のデータというのが、紛らわしいのですが同じ名前でtraining_data_listというのですが、それをprintした結果print(training_data_list)は、
32
32
  [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 1, 1, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 6, 0, 0, 10, 2, 2, 2, 2, 2, 2, 2, 2, 10, 10, 2, 2, 2, 2, 2, 2, 2, 2, 10]
33
33
  これになります。
34
+ また、このデータを用いるために、記事のプログラムの
35
+ inodes = 784
36
+ の部分は、
37
+ inodes = 59
38
+ に変更しています(,の数が59個だから)。
34
39
 
35
40
  ここで、まずこの記事のプログラムは、training_data.csvという、
36
41
  5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,18,18,18,126・・・略
@@ -73,4 +78,23 @@
73
78
  かといって、一気に
74
79
  val = [str(x) for x in test_data_list[e]]
75
80
  とか使ってfor文外でlist化してしまえば、for文が使えなくて色々不便ですし・・・
76
- いまいちよく分かっていません、たぶんリスト、文字、数値の区別がごちゃごちゃになっているからだと思うのですが・・・どうすればいいんでしょうか。
81
+ いまいちよく分かっていません、たぶんリスト、文字、数値の区別がごちゃごちゃになっているからだと思うのですが・・・どうすればいいんでしょうか。
82
+
83
+ 試した事
84
+ 記事のプログラムに入る前に、
85
+ ```python
86
+ training_data_list = [str(x) for x in test_data_list]
87
+ ```
88
+ と書いて、
89
+ for文内で、
90
+ ```python
91
+ val = training_data_list[i].split(',')
92
+ ```
93
+ と書き換えた所、
94
+
95
+ ValueError: shapes (100,59) and (0,1) not aligned: 59 (dim 1) != 0 (dim 0)
96
+ というエラーが出ました。
97
+
98
+ これって、行列の掛け算定義不能って事なんですかね??問題はそこだけ?
99
+
100
+ どうすればいいのかな。