2016-10-20 7 views
4

画像ファイルの拡張子を取得して別の画像デコーダを呼び出そうとしていて、tensorflow r0.11にtf.string_splitという関数があります。テンソルフローでtf.string_split()を使用するにはどうすればよいですか?

filename_queue = tf.train.string_input_producer(filenames, shuffle=shuffle) 
reader = tf.WholeFileReader() 
img_src, img_bytes = reader.read(filename_queue) 
split_result = tf.string_split(img_src, '.') 

しかし、私はそれを実行したとき、私はこのエラーを取得する:

ValueError: Shape must be rank 1 but is rank 0 for 'StringSplit' (op: 'StringSplit') with input shapes: [], []. 

私はそれがimg_srcの形状推論によって引き起こされるかもしれないと思います。私はこのエラーを取得し、私はそれを修正するためにimg_src.set_shape([1,])を使用しようとするが、動作しないようです:

ValueError: Shapes() and (1,) are not compatible 

また、私は結果がある

tf.Print(split_result, [tf.shape(img_src)],'img_src shape=') 

を使用してimg_srcの形状を得ることができないimg_src shape=[] 。しかし、私は次のコードを使用する場合:

tf.Print(split_result, [img_src],'img_src=') 

結果はimg_src=test_img/test1.pngです。私は何か間違っているのですか?

+0

「img_src」をパックしてみてください。 'split_result = tf.string_split([img_src]、 '。')'を試してみて、それが動作するかどうか教えてください – nessuno

+0

それは動作します!本当にありがとう!!! –

+0

あなたは大歓迎です。私はあなたがそれを受け入れることができるように答えにコメントを移します。 – nessuno

答えて

5

img_srcをテンソルにパックしてください。

split_result = tf.string_split([img_src], '.') 
関連する問題