2017-10-10 4 views
2

Ich kann nicht das folgende string_input_producer- hello world Programm erhalten laufen:tensorflow.string_input_producer ‚Hallo Welt‘

import tensorflow as tf 

filename = tf.placeholder(dtype=tf.string, name='filename') 
f_q = tf.train.string_input_producer(filename, num_epochs=1, shuffle=False) 
filename_tf = f_q.dequeue() 

with tf.Session() as S: 
    S.run(tf.local_variables_initializer()) 
    coord = tf.train.Coordinator() 
    threads = tf.train.start_queue_runners(coord=coord) 

    print(S.run(filename_tf, feed_dict={filename: "hello world"})) 

    coord.request_stop() 
    coord.join(threads) 

scheint einfach genug, aber tf sagt mir, in einer Fehlermeldung, die ich brauche, um eine Zeichenfolge zu übergeben Wert zu Platzhalter 'Dateiname' (was ich tue). Jeder bekommt, was ich hier falsch mache? Danke

Warum heißt es Papierstau, wenn kein Papierstau vorliegt!

Antwort

0

Dies kann funktionieren.

import tensorflow as tf 

filename = ['hello world'] 
f_q = tf.train.string_input_producer(filename, num_epochs=1, shuffle=False) 
filename_tf = f_q.dequeue() 

with tf.Session() as S: 
    S.run(tf.local_variables_initializer()) 
    coord = tf.train.Coordinator() 
    threads = tf.train.start_queue_runners(coord=coord) 

    print(S.run(filename_tf)) 

    coord.request_stop() 
    coord.join(threads) 

weil tf.train.string_input_producer kehrt ein queue und es einige echte Dinge braucht zu einzureihen, dann wird es mit einer gewissen Reihenfolge aus der Warteschlange entfernt.

+0

[Sie] (https://www.tensorflow.org/api_docs/python/tf/train/string_input_producer) sagen, dass 'tf.train.string_input_producer' kann einen Tensor in API 1.3 nehmen. Wie kann ich das machen? – Jus

+0

'tf.train.string_input_producer (tf.convert_to_tensor (a_list_of_strings))', vielleicht ist das was du willst? – Seven

+0

Danke, @seven; Ja, das wäre eine andere Lösung für das minimale Beispiel, das ich gegeben habe. In meinem Anwendungsfall würde ich jedoch gerne einen "tf.placeholder" in den "tf.string_input_producer" einfügen, der später gefüllt wird, genau wie im Beispiel, an dem ich nicht arbeiten kann. Dieser Ansatz hätte einige Vorteile für meinen Anwendungsfall. – Jus