質問編集履歴
2
不足
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,7 +4,29 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
投げやりのようで申し訳ないのですがこのプログラムを通すためのアドバイスをお願いします。
|
7
|
+
投げやりのようで申し訳ないのですがこのプログラムを通すためのアドバイスをお願いします。どういうエラーかはわかりますが直しかたが全く分かりません。長すぎてコメント等はところどころ消してますがもとになるプログラムは http://aidiary.hatenablog.com/entry/20140522/1400763709 にあります。
|
8
|
+
|
9
|
+
```結果
|
10
|
+
|
11
|
+
Directory: /data/0deg_30deg_0811/sleep1
|
12
|
+
|
13
|
+
1000 files found in sleep1.
|
14
|
+
|
15
|
+
Total: 1000 files found in /data/0deg_30deg_0811/sleep1.
|
16
|
+
|
17
|
+
Total: 0 files found in /data/0deg_30deg_0811/sleep1.
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
Traceback (most recent call last):
|
22
|
+
|
23
|
+
File "C:\python\NN\mlp_cg.py", line 242, in <module>
|
24
|
+
|
25
|
+
data=images.reshape(len(images), -1)
|
26
|
+
|
27
|
+
ValueError: total size of new array must be unchanged
|
28
|
+
|
29
|
+
```
|
8
30
|
|
9
31
|
|
10
32
|
|
1
とくになし
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,7 +4,11 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
投げやりのようで申し訳ないのですがこのプログラムを通すためのアドバイスをお願いします。
|
7
|
+
投げやりのようで申し訳ないのですがこのプログラムを通すためのアドバイスをお願いします。エラーが出るのは target[nFiles] = int(subdir[-1])-1 の部分です。どういうエラーかはわかりますが直しかたが全く分かりません。長すぎてコメント等はところどころ消してますがもとになるプログラムは http://aidiary.hatenablog.com/entry/20140522/1400763709 にあります。
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
```ここに言語を入力
|
8
12
|
|
9
13
|
#coding: utf-8
|
10
14
|
|
@@ -38,11 +42,15 @@
|
|
38
42
|
|
39
43
|
|
40
44
|
|
41
|
-
|
42
|
-
|
43
45
|
def displayData(X, fname):
|
44
46
|
|
45
|
-
|
47
|
+
"""
|
48
|
+
|
49
|
+
データからランダムに100サンプル選んで可視化
|
50
|
+
|
51
|
+
画像データは8x8ピクセルを仮定
|
52
|
+
|
53
|
+
"""
|
46
54
|
|
47
55
|
pyplot.clf()
|
48
56
|
|
@@ -62,10 +70,14 @@
|
|
62
70
|
|
63
71
|
image = data.reshape((80, 40))
|
64
72
|
|
73
|
+
|
74
|
+
|
65
75
|
pyplot.imshow(image, cmap=pyplot.cm.gray_r,
|
66
76
|
|
67
77
|
interpolation='nearest')
|
68
78
|
|
79
|
+
# pyplot.show()
|
80
|
+
|
69
81
|
pyplot.savefig(fname)
|
70
82
|
|
71
83
|
|
@@ -178,7 +190,9 @@
|
|
178
190
|
|
179
191
|
delta2 = np.dot(Theta2.T, delta3) * sigmoidGradient(np.hstack((1, z2)))
|
180
192
|
|
181
|
-
delta2 = delta2[1:]
|
193
|
+
delta2 = delta2[1:]
|
194
|
+
|
195
|
+
# 行数に-1を指定すると自動的に入る
|
182
196
|
|
183
197
|
delta2 = delta2.reshape((-1, 1))
|
184
198
|
|
@@ -204,13 +218,13 @@
|
|
204
218
|
|
205
219
|
for j in range(hid_size):
|
206
220
|
|
207
|
-
for k in range(1, in_size + 1):
|
221
|
+
for k in range(1, in_size + 1): # バイアスに対応する重みは加えない
|
208
222
|
|
209
223
|
temp += Theta1[j, k] ** 2
|
210
224
|
|
211
225
|
for j in range(num_labels):
|
212
226
|
|
213
|
-
for k in range(1, hid_size + 1):
|
227
|
+
for k in range(1, hid_size + 1): # バイアスに対応する重みは加えない
|
214
228
|
|
215
229
|
temp += Theta2[j, k] ** 2
|
216
230
|
|
@@ -270,14 +284,22 @@
|
|
270
284
|
|
271
285
|
# 入力層のユニット数
|
272
286
|
|
287
|
+
|
288
|
+
|
273
289
|
in_size = 80 * 40 # J = 0.09091 iteration=165
|
274
290
|
|
291
|
+
|
292
|
+
|
275
293
|
# 隠れ層のユニット数
|
276
294
|
|
277
295
|
hid_size = 45 #25
|
278
296
|
|
297
|
+
# hid_size = 11
|
298
|
+
|
279
299
|
# 出力層のユニット数(=ラベル数)
|
280
300
|
|
301
|
+
# num_labels = 10 # for digits
|
302
|
+
|
281
303
|
num_labels = 2
|
282
304
|
|
283
305
|
|
@@ -288,6 +310,18 @@
|
|
288
310
|
|
289
311
|
nFiles = 0
|
290
312
|
|
313
|
+
# 訓練データを入れておくディレクトリ
|
314
|
+
|
315
|
+
# このディレクトリの下に
|
316
|
+
|
317
|
+
# 1/
|
318
|
+
|
319
|
+
# 2/
|
320
|
+
|
321
|
+
# 3/ ...
|
322
|
+
|
323
|
+
# というディレクトリを作りその下に訓練用の画像を入れておく
|
324
|
+
|
291
325
|
# ここで1,2,3..は、識別するラベル番号に相当する
|
292
326
|
|
293
327
|
path = '/data/0deg_30deg_0811/sleep1'
|
@@ -312,14 +346,6 @@
|
|
312
346
|
|
313
347
|
if e.lower() == '.png':
|
314
348
|
|
315
|
-
#print '%s' % root+'/'+f
|
316
|
-
|
317
|
-
#img = cv2.imread(root+'/'+f)
|
318
|
-
|
319
|
-
#cv2.imshow('result', img)
|
320
|
-
|
321
|
-
#cv2.waitKey(0)
|
322
|
-
|
323
349
|
nFiles += 1
|
324
350
|
|
325
351
|
nsubFiles += 1
|
@@ -402,6 +428,14 @@
|
|
402
428
|
|
403
429
|
|
404
430
|
|
431
|
+
# print "image:shape: ", image.shape
|
432
|
+
|
433
|
+
# print "images:shape: ", images.shape
|
434
|
+
|
435
|
+
|
436
|
+
|
437
|
+
|
438
|
+
|
405
439
|
indices = np.arange(nFiles)
|
406
440
|
|
407
441
|
np.random.RandomState(42).shuffle(indices)
|
@@ -576,32 +610,4 @@
|
|
576
610
|
|
577
611
|
|
578
612
|
|
579
|
-
|
580
|
-
|
581
|
-
# 以下は、重みがちゃんと保存されているか確認するためのコード
|
582
|
-
|
583
|
-
|
613
|
+
```
|
584
|
-
|
585
|
-
# load weightings (W1, W2) in the NN
|
586
|
-
|
587
|
-
# 重みを読み込んで識別する
|
588
|
-
|
589
|
-
#f=open('weightings.pkl','rb')
|
590
|
-
|
591
|
-
#W1 = pickle.load(f)
|
592
|
-
|
593
|
-
#W2 = pickle.load(f)
|
594
|
-
|
595
|
-
#f.close()
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
# 実際に識別している関数はpredict()
|
600
|
-
|
601
|
-
#predf = predict(W1, W2, X_test)
|
602
|
-
|
603
|
-
#print len(predf)
|
604
|
-
|
605
|
-
#print confusion_matrix(y_test, predf)
|
606
|
-
|
607
|
-
#print classification_report(y_test, predf)
|