1
ファイル名のリストからテンソルフローでキューを作成しようとしています。リストが作成されましたが、文字列入力プロデューサが空のキューを返したようです。コードが機能しないその他の理由があるかもしれません。以下はコードですテンソルフローstring_input_producerは空のキューを与えます
sess = tf.InteractiveSession()
def read_my_file_format(filename_queue):
reader = tf.WholeFileReader()
key, value = reader.read(filename_queue)
images = tf.image.decode_jpeg(value, channels=3)
return images, key
def input_pipeline(filenames, batch_size, num_epochs, labels):
filename_queue = tf.train.string_input_producer(filenames, num_epochs=num_epochs, shuffle=False)
image, key = read_my_file_format(filename_queue)
return image, key
sess.run(tf.global_variables_initializer())
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(sess = sess, coord = coord, start=True)
input_pipeline(trainnames, batch_size, None, labels)
coord.request_stop()
coord.join(threads)
はあなたにもグラフでパイプラインを結合する方法を教えていただけますか?私は、グラフのプレースホルダにテンソルを与えることができないことを知りました。この場合、グラフに入力する必要がありますか?列車セットと2つの異なるキューにテストセットがあります。両方を1つのグラフに入力することは可能ですか?グラフを関数として定義すると、呼び出すたびに新しいグラフが作成されるか、同じ古いグラフが返されます。 – ALeex
基本的に、パイプライン(例えば、 'filename_queue'、' image'、 'key'、...)はグラフの一部です。 feed_dictを使用してプレースホルダテンソルを手動でフィードしたくない場合は、画像テンソルを使用してグラフに直接フィードできます。基本的には、プレースホルダを使用したときと同じように、デキューを使用します。 [reading_dataセクション](https://www.tensorflow.org/programmers_guide/reading_data)を読んで例を見てみることをお勧めします。 あなたの最後の質問については、この[section](https://www.tensorflow.org/programmers_guide/variables)に興味があるかもしれません。 – npf
私は助けてくれてありがとう私は質問を開く前にそれを読んだことがあるが、私はまだそれを読んだ後に何をすべきか分からない。そこで、グラフにfilename_queue、image、およびkeyを追加します。 'sess.run([image、key])'を実行すると、デキューしてグラフを通過すると思いますか?それとも、訓練をせずにイメージテンソルを取得するだけですか?グラフのパイプライン部分を作るために、トレーニングセットとテストセットの両方のパイプラインを与える方法を見つけられませんでしたが、これについて知っていますか? – ALeex