3
在Tensorflow中,我正在從一組PNG文件進行培訓,並希望應用數據增強。我已成功使用tf.image.random_flip_left_right()
無法在Tensorflow中將隨機變量傳遞給tf.image.central_crop()
但是當我嘗試使用tf.image.central_crop()
時出現錯誤。 基本上我想從一個均勻分佈(0.8,1.0]繪製的central_fraction。
這裏是我的代碼。我有什麼錯嗎?應該frac
是tf.random_uniform()
?
filename_queue = tf.train.string_input_producer(tf.train.match_filenames_once("./images/*.png"))
image_reader = tf.WholeFileReader() # Read an entire image file
_, image_file = image_reader.read(filename_queue)
image = tf.image.decode_png(image_file, channels=3, dtype=tf.uint8, name="PNGDecompressor")
image.set_shape([800,400,3])
frac = random.uniform(0.8,1.0)
image = tf.image.central_crop(image, central_fraction = frac) # THIS FAILS
# image = tf.image.central_crop(image, central_fraction = 0.8) # THIS WORKS
image = tf.image.resize_images(image, [256, 128])
image.set_shape([256,128,3])
image = tf.cast(image, tf.float32) * (1./255) - 0.5 # Convert from [0, 255] -> [-0.5, 0.5] floats.
image = tf.image.per_image_whitening(image)
image = tf.image.random_flip_left_right(image, seed=42)
# Start a new session to show example output.
with tf.Session() as sess:
tf.initialize_all_variables().run()
coord = tf.train.Coordinator()
threads = tf.train.start_queue_runners(coord=coord)
t_image= sess.run([image])
[...]
coord.request_stop()
coord.join(threads)
與失敗錯誤:
TypeError: Fetch argument 0.9832154064713503 has invalid type <class 'float'>, must be a string or Tensor. (Can not convert a float into a Tensor or Operation.)
我試着在v0.10上運行腳本,但沒有遇到任何問題。你能否提一下你使用'import tensoflow as tf; print tf .__ git_version__'的TF版本?另外,在您的數據中提供一些指向png的鏈接可能會有所幫助。 –
對於TF版本: – maurizio
對於TF版本,如果我運行:python3 -c'import tensorflow as tf; print(tf .__ version__)'我得到:0.11.0rc0。我在Python 3.5上。這是一個圖像的例子。謝謝! – maurizio