質問編集履歴

2

不足

2016/12/18 14:12

投稿

kosuke1126
kosuke1126

スコア12

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,29 @@
4
4
 
5
5
 
6
6
 
7
- 投げやりのようで申し訳ないのですがこのプログラムを通すためのアドバイスをお願いします。エラーが出るのは target[nFiles] = int(subdir[-1])-1 の部分です。どういうエラーかはわかりますが直しかたが全く分かりません。長すぎてコメント等はところどころ消してますがもとになるプログラムは http://aidiary.hatenablog.com/entry/20140522/1400763709 にあります。
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

とくになし

2016/12/18 14:11

投稿

kosuke1126
kosuke1126

スコア12

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)