如何使用tf.readfile
进行批量学习?
for i in range(len(files_mask)): t_image_left = tf.read_file(files_left[i], name='read_fileimage_left') t_image_right = tf.read_file(files_right[i], name='read_fileimage_right') t_image_mask = tf.read_file(files_mask[i], name='read_fileimage_mask') t_left = tf.image.decode_png(t_image_left, name='decode_png_t_left', dtype=tf.uint8) t_right = tf.image.decode_png(t_image_right, name='decode_png_t_right', dtype=tf.uint8) t_mask = tf.image.decode_png(t_image_mask, name='decode_png_t_mask', dtype=tf.uint8)
左图、右图和掩模批次应彼此对应。所有图像的左上角批次应当是左上角批次。
是否可以使用: https://www.tensorflow.org/versions/r1.2/api_docs/python/tf/train/batch ?
回答:
你可以使用tf.train.batch
,但你还需要为文件名使用队列,例如tf.train.slice_input_producer
filename_queue = tf.train.slice_input_producer([files_left, files_right, files_mask])t_image_left = tf.read_file(filename_queue[0], name='read_fileimage_left')t_image_right = tf.read_file(filename_queue[1], name='read_fileimage_right')t_image_mask = tf.read_file(filename_queue[2], name='read_fileimage_mask')t_left = tf.image.decode_png(t_image_left, name='decode_png_t_left', dtype=tf.uint8)t_right = tf.image.decode_png(t_image_right, name='decode_png_t_right', dtype=tf.uint8)t_mask = tf.image.decode_png(t_image_mask, name='decode_png_t_mask', dtype=tf.uint8batch_left, batch_right, batch_mask = tf.train.batch([t_left, t_right, t_mask], batch_size=32, num_threads=1, capacity=500, enqueue_many=False,)