2016-12-02 13 views
0

グラフに画像をロードしようとしましたが、RGBですが、処理前にグラフをグレースケールに変換してください。私はエラーTensorFlowグラフに画像を入力中にエラーが発生しました

ValueError: Cannot feed value of shape (250, 32, 32, 3) for Tensor 'x:0', which has shape '(?, 32, 32, 1)' 

を取得していますが

x = tf.placeholder(tf.float32, shape=[None, 32, 32, 1], name='x') 

gray = tf.image.rgb_to_grayscale(x, name='grayscale') 

は、私はエラーでnotebookをエクスポートし、completnessと簡潔にするためmdファイルとしてGithubにそれをアップロードしました。

x_batchがRGBの形になっているため、エラーが発生しています。

しかし、私はTensorFlowが自動的に変換を行うと思っていました。

tf.image.rgb_to_grayscaleは入力をラップするので、TFはセッションの一部としてgrayscalingを実行しないでください。

それがどういう仕組みか分からないのですか?

+1

あなたはRGB画像に送りたい場合は、形状のプレースホルダを持っている必要があります '[なし、32、 32、3]。その後、グレースケールが発生することがあります。 –

+0

@OlivierMoindrotので、tf.image.rgb_to_grayscaleはコードなしでグレースケール処理を行いますか?灰色の画像が処理されていることを確認するにはどうすればよいですか? –

+0

RGB画像をプレースホルダに送り、 'gray = tf.image.rgb_to_grayscale(x)'を適用すると、出力は '[None、32、32、1]'の形になり、グレーの画像。確かめたいのであれば、 'gray'の形を調べることができます。 –

答えて

1

機能tf.image.rgb_to_graycaleは、その最後の寸法は、例えば、あなたの場合に形状(250, 32, 32, 3)の画像のバッチサイズ3を有する入力テンソルを期待するか、形状(32, 32, 3)の単一の画像であってもよいです。

あなたはRGB画像を送り、すぐにグレースケールにそれらを処理したい場合は、あなたが行うことができます:

images = tf.placeholder(tf.float32, shape=[None, 32, 32, 3]) 
gray_images = tf.image.rgb_to_grayscale(images) # has shape (None, 32, 32, 1) 
関連する問題