私はTensorflowを使い始めています。初心者の質問があります。Tensorflowで画像ファイルを保存する
私はTensorflowはすべて神経網に関するものだと知っていますが、私はそれの力学だけで始まります。私は2つの画像を読み込み、サイズ変更し、反転して保存するようにしています。簡単な操作でなければならない、そして、それは私が基本から始めることを可能にする。
はここで、これまでに私のコードです:
import tensorflow as tf
import numpy as np
print("resizing images")
filenames = ['img1.png', 'img2.png' ]
filename_queue = tf.train.string_input_producer(filenames, num_epochs=1)
reader = tf.WholeFileReader()
key,value = reader.read(filename_queue)
images = tf.image.decode_png(value)
resized = tf.image.resize_images(images, 180,180, 1)
resized.set_shape([180,180,3])
flipped_images = tf.image.flip_up_down(resized)
resized_encoded = tf.image.encode_jpeg(flipped_images,name="save_me")
init = tf.initialize_all_variables()
sess = tf.Session()
with sess.as_default():
tf.train.start_queue_runners()
sess.run(init)
f = open("/tmp/foo1.jpeg", "wb+")
f.write(resized_encoded.eval())
f.close()
f = open("/tmp/foo2.jpeg", "wb+")
f.write(resized_encoded.eval())
f.close()
それは正常に動作し、2枚の画像をリサイズし、それらを保存します。しかし、それは常にエラーで終了します:
W tensorflow/core/common_runtime/executor.cc:1076] 0x7f97240e7a40
Compute status: Out of range: Reached limit of 1
私は明らかに何か間違っています。私がnum_epochs = 1を離れると、エラーなしで終了します。
私はいくつか質問があります:
これはどうやって正しく行うのですか?
また、元のファイル名をfilename_queueから最後まで保存して元の名前で保存できるようにするにはどうすればよいですか?また、保存する必要のあるファイルの数を確認するにはどうすればよいですか?ディレクトリを読み込んでファイル名のリストを作っているとしましょう。私はいろいろなことを試みましたが、私が終わりに達したときに私がどのように知っているかは決して分かりません。
resized_encoded.eval()を2回呼び出すのは奇妙に思えます。
これは非常に基本的な質問ですが、私はこれがどのように機能するのか理解できません。
編集:これは、同じ警告を与える
import tensorflow as tf
import numpy as np
filenames = ['file1.png', 'file2.png' ]
filename_queue = tf.train.string_input_producer(filenames,
num_epochs=1, name="my_file_q")
reader = tf.WholeFileReader()
key,value = reader.read(filename_queue)
init = tf.initialize_all_variables()
sess = tf.Session()
with sess.as_default():
print("session started")
sess.run(init)
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(coord=coord)
for i in range (2):
print(key.eval())
coord.request_stop()
coord.join(threads)
:私は行動のさらに簡単なデモを作成しました。なぜ私は理解できません。