Tensorflowライブラリを使ってチュートリアルを遊んでいます。今、自分のデータで遊びたかったのですが、ひどく失敗しました。これはおそらくnoobの質問ですが、理解できません。
私はこの例を使用しています: https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3%20-%20Neural%20Networks/convolutional_network.py
私は自分の画像を使用したいのですが、テンソルフローで使用するために画像を変換するために、これを使用しています: https://github.com/HamedMP/ImageFlow/blob/master/ImageFlow.py
ここで、例のパラメーターを次のように変更します。
n_input = 784
n_classes = 10
これに:
n_input = 9216
n_classes = 2
私の画像は96 * 96であり、私の画像のクラスは2つしかないため、
また、重みとバイアスを必要な数に変更します。
私はこのようなデータを読みました:
batch_xs = imgReader.read_images(pathname);
imageFlowファイルであるimgReader
しかし、実行しようとするとエラーが発生します。
ValueError: Cannot feed value of shape (104, 96, 96, 1) for Tensor
u'Placeholder:0', which has shape (Dimension(None), Dimension(9216))
小さいものを見落としているような気がしますが、見えません。
このエラーは、フィードしようとしているデータの形状(104 x 96 x 96 x 1)が入力プレースホルダーの形状と一致しないために発生します(_batch_size
_ x 9216、_batch_size
_は可変である)。
これを機能させるには、トレーニングステップを実行する前に次の行を追加します。
_batch_xs = np.reshape(batch_xs, (-1, 9216))
_
これは、numpyを使用して、読み込まれた画像(_batch_size
_ x h x w xチャネルの4次元配列)を、プレースホルダーが期待する_batch_size
_ x 9216要素マトリックスに再形成します。
この問題は、pipを使用してtensorflowをアップグレードすることで解決しました。