2016-10-20 7 views
4

Ich möchte die Erweiterung von Bilddateien erhalten, um verschiedene Bilddecoder aufrufen, und ich fand, dass es eine Funktion namens tf.string_split in Tensorflow r0.11.Wie kann ich tf.string_split() im Tensorflow verwenden?

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, '.') 

Aber wenn ich es laufen lasse, erhalte ich diese Fehlermeldung:

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

Ich denke, es durch die Form Folgerung von img_src verursacht werden. Ich versuche img_src.set_shape([1,]) zu verwenden, um es zu beheben, aber es scheint nicht, ich diesen Fehler:

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

Auch ich kann nicht die Form img_src erhalten mit

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

Das Ergebnis ist img_src shape=[] . Aber wenn ich den folgenden Code verwenden:

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

Das Ergebnis ist img_src=test_img/test1.png. Mache ich etwas falsch?

+0

Versuchen Sie, 'img_src' zu packen. Probieren Sie einfach 'split_result = tf.string_split ([img_src], '.')' Und sagen Sie mir, ob es funktioniert – nessuno

+0

Es funktioniert !!! Vielen Dank!!! –

+0

Gern geschehen. Ich verschiebe den Kommentar in eine Antwort, damit Sie sie akzeptieren können. – nessuno

Antwort

5

Einfach img_src in einen Tensor einpacken.

split_result = tf.string_split([img_src], '.') 
Verwandte Themen