質問編集履歴

4

重要部分を、***********重要***********で囲みました。

2021/04/23 23:51

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -134,6 +134,8 @@
134
134
 
135
135
 
136
136
 
137
+ ***********重要***********
138
+
137
139
  まぁつまりは、この test_data_listを、この記事のプログラムで何とかして使いたいんですよね~
138
140
 
139
141
  現在は、 test_data_listは一行なので、forは1回回す事になりますね~
@@ -145,6 +147,8 @@
145
147
  その場合、記事のプログラムを変えるか、それとも入力データtest_data_listを、記事のtest_data_listの形式に変換する操作を行うか・・・になりますよね、
146
148
 
147
149
  どっちが良いかは、自分にはわかりません・・・。
150
+
151
+ ***********重要***********
148
152
 
149
153
 
150
154
 

3

補足しました。

2021/04/23 23:51

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -68,13 +68,83 @@
68
68
 
69
69
  となってしまいますが、
70
70
 
71
- forで回しているため、[i]番目ごとにリスト化するという作業が必要のようで、
72
71
 
73
- しかしtest_data_list[i]等とすると、
74
72
 
75
- TypeError: 'int' object is not iterable
73
+ (for文とは関係がない所で)
76
74
 
77
- というエラーになります、まぁこれはたぶん、数値が1つなのでリストじゃないよという感じの意味かと。
75
+ val = [str(x) for x in test_data_list]
76
+
77
+ とすると、
78
+
79
+ printした結果が、
80
+
81
+ ['5', '2', '0', '0', '0', '1', '5', '4', '4', '4', '4', '3', '2', '2', '2', '0', '3', '3', '3', '3', '6', '5', '1', '1', '1', '1', '5', '0', '4', '4', '7', '3', '3', '3', '3', '1', '2', '2', '2', '2', '5', '0', '4', '8', '8', '2', '5', '3', '10', '10', '5', '5', '8', '7', '6', '4', '5', '5', '5', '5']
82
+
83
+ となってしまい、また、for文内で、
84
+
85
+
86
+
87
+ epoch = 10
88
+
89
+ for e in range(epoch):
90
+
91
+ print('#epoch ', e)
92
+
93
+ data_size = len(training_data_list)
94
+
95
+ #test
96
+
97
+ val = [str(x) for x in test_data_list[e]]
98
+
99
+ print("00000")
100
+
101
+ print(val)
102
+
103
+ print("00000")
104
+
105
+ #test
106
+
107
+ for i in range(data_size):
108
+
109
+ if i % 1000 == 0:
110
+
111
+ print(' train: {0:>5d} / {1:>5d}'.format(i, data_size))
112
+
113
+ val = [str(x) for x in test_data_list[e]]
114
+
115
+ idata = (np.asfarray(val[1:]) / 255.0 * 0.99) + 0.01
116
+
117
+ tdata = np.zeros(onodes) + 0.01
118
+
119
+ tdata[int(val[0])] = 0.99
120
+
121
+ nn.backprop(idata, tdata)
122
+
123
+ pass
124
+
125
+ pass
126
+
127
+
128
+
129
+ val = [str(x) for x in test_data_list[e]]←ここ
130
+
131
+ としても、TypeError: 'int' object is not iterable
132
+
133
+ となります。
134
+
135
+
136
+
137
+ まぁつまりは、この test_data_listを、この記事のプログラムで何とかして使いたいんですよね~
138
+
139
+ 現在は、 test_data_listは一行なので、forは1回回す事になりますね~
140
+
141
+ でも、forを複数回回す事も考えてます、まぁどっちでも良いんですが。
142
+
143
+
144
+
145
+ その場合、記事のプログラムを変えるか、それとも入力データtest_data_listを、記事のtest_data_listの形式に変換する操作を行うか・・・になりますよね、
146
+
147
+ どっちが良いかは、自分にはわかりません・・・。
78
148
 
79
149
 
80
150
 

2

質問追記しました。

2021/04/23 23:01

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -78,4 +78,32 @@
78
78
 
79
79
 
80
80
 
81
- のようにすれば良いでしょうか・・・
81
+ ちなみに元記事のプログラムで、mnist_train.csvについては以下のように量を減ら変更をしました、具体的には、3行まました(4行以上は削除)
82
+
83
+
84
+
85
+ をした上で、for文の中でvalをいちいちprint
86
+
87
+ val = training_data_list[i].split(',')
88
+
89
+ print(val)
90
+
91
+ していくと、
92
+
93
+
94
+
95
+ ['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']
96
+
97
+
98
+
99
+ ['0', ・・・(略)・・・ '0', '0\n']
100
+
101
+
102
+
103
+ ['4', ・・・(略)・・・ '0']
104
+
105
+
106
+
107
+ のようになります、このように変換すれば動くようです、自分のプログラムにおいてはどのよう変更すれば良いでしょうか・・・。
108
+
109
+ ※ inodes = 784の数値は,の数で、ここを変更すべき事は分かっております。

1

補足質問しました。

2021/04/23 07:47

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -35,3 +35,47 @@
35
35
  となります。
36
36
 
37
37
  自分は上記の形式(a)をsplitしたいのですが、どうすればいいんでしょうか?
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+ 回答頂いた
46
+
47
+ 「a = [str(x) for x in a]」
48
+
49
+ というコードで、確かに""で各成分が囲まれた文字列list?にする事はできるのですが、
50
+
51
+ 自分でニューラルネットワークを作ろうhttps://qiita.com/takahiro_itazuri/items/d2bea1c643d7cca11352#comment-a59cd26161ee56ea1220
52
+
53
+ の、
54
+
55
+ val = record.split(',')
56
+
57
+ のvalの形式とは少し違うようで、上手く動きません、どうすれば良いのでしょうか。
58
+
59
+
60
+
61
+ 問題点は、
62
+
63
+ val = [str(x) for x in test_data_list]だと、
64
+
65
+ printした結果が、
66
+
67
+ ['5', '2', '0', '0', '0', '1', '5', '4', '4', '4', '4', '3', '2', '2', '2', '0', '3', '3', '3', '3', '6', '5', '1', '1', '1', '1', '5', '0', '4', '4', '7', '3', '3', '3', '3', '1', '2', '2', '2', '2', '5', '0', '4', '8', '8', '2', '5', '3', '10', '10', '5', '5', '8', '7', '6', '4', '5', '5', '5', '5']
68
+
69
+ となってしまいますが、
70
+
71
+ forで回しているため、[i]番目ごとにリスト化するという作業が必要のようで、
72
+
73
+ しかしtest_data_list[i]等とすると、
74
+
75
+ TypeError: 'int' object is not iterable
76
+
77
+ というエラーになります、まぁこれはたぶん、数値が1つなのでリストじゃないよという感じの意味かと。
78
+
79
+
80
+
81
+ どのようにすれば良いでしょうか・・・。