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

質問編集履歴

1

プログラムを修正しました。

2020/12/17 14:16

投稿

takuya324232506
takuya324232506

スコア7

title CHANGED
File without changes
body CHANGED
@@ -24,8 +24,21 @@
24
24
 
25
25
  # MNIST の学習データのうち最初の nx * ny 個だけ取り出す
26
26
  mn = mnist.MNIST(pathMNIST = './mnist')
27
- dat = mn.getImage('L')[:nx*ny]
27
+ dat = mn.getImage('L')
28
- lab = mn.getLabel('L')[:nx*ny]
28
+ lab = mn.getLabel('L')
29
+
30
+ result=[]
31
+
32
+ for i in range(10):
33
+ count=0
34
+ for count in range(10):
35
+ for j in range(len(dat)):
36
+ if i == lab[j]:
37
+ result.append(dat[j])
38
+ count = count+1
39
+ elif count == 10:
40
+ break
41
+
29
42
  nrow, ncol = mn.nrow, mn.ncol
30
43
 
31
44
  # 並べた画像の幅と高さ
@@ -38,7 +51,7 @@
38
51
  lty = iy*(nrow + gap) + gap
39
52
  for ix in range(nx):
40
53
  ltx = ix*(ncol + gap) + gap
41
- img[lty:lty+nrow, ltx:ltx+ncol] = dat[iy*nx+ix].reshape((nrow, ncol))
54
+ img[lty:lty+nrow, ltx:ltx+ncol] = result[iy*nx+ix].reshape((nrow, ncol))
42
55
 
43
56
  # 画像の出力
44
57
  cv2.imwrite('MNIST.png', img)
@@ -132,4 +145,8 @@
132
145
  dat = mnist.getImage( 'T' )
133
146
  lab = mnist.getLabel( 'T' )
134
147
  print( dat.shape, dat.dtype, lab.shape )
135
- ```
148
+ ```
149
+
150
+ ## エラー箇所
151
+ これで実行すると「0」の画像が100枚(縦10、横10)表示にできました。
152
+ しかし、このままでは0のみになります。どうすれば全ての数字を10枚ずつ表示できますか?