mnist.train.imagesは本質的に形状[55000,784]のnumpy配列です。ここで、55000は画像数、784は各画像のピクセル数です(各画像は28x28です)
この正確なコードを実行する場合は、データから同様のnumpy配列を作成する必要があります。だから、あなたは[num_examples、image_sizeでは]
次のコードスニペットは、それを行う必要があり、すべての画像の上にnumpyの配列としてread imageを繰り返すそれを平らにし、サイズの行列を作成する必要があります:
import os
import cv2
import numpy as np
def load_data(img_dir):
return np.array([cv2.imread(os.path.join(img_dir, img)).flatten() for img in os.listdir(img_dir) if img.endswith(".jpg")])
デバッグを有効にする
より包括的なコード:
import os
list_of_imgs = []
img_dir = "../input/train/"
for img in os.listdir("."):
img = os.path.join(img_dir, img)
if not img.endswith(".jpg"):
continue
a = cv2.imread(img)
if a is None:
print "Unable to read image", img
continue
list_of_imgs.append(a.flatten())
train_data = np.array(list_of_imgs)
注: あなたのイメージは28x28x1(B/Wの画像)でない場合は、(cnn_model_fnで定義されている)、ニューラルネットワークアーキテクチャを変更する必要があります。チュートリアルのアーキテクチャは、MNISTのような単純なイメージの場合にのみ機能するおもちゃのアーキテクチャです。 Alexnetは、RGB画像を開始するのに適しているかもしれません。
https://gist.github.com/eerwitt/518b0c9564e500b4b50f – grovina