如何从张量流中的字符串张量中读取数据集名称
How to read dataset names from string tensor in tensorflow
我是 tensorflow 的新手,我有一个张量(字符串类型),其中存储了我想用于训练模型的所有必需图像的图像路径。
问题:如何将张量读取到队列中,然后进行批处理。
我的方法是:给我错误
img_names = dataset['f0']
file_length = len(img_names)
type(img_names)
tf_img_names = tf.stack(img_names)
filename_queue = tf.train.string_input_producer(tf_img_names, num_epochs=num_epochs, shuffle=False)
wd=getcwd()
print('In input pipeline')
tf_img_queue = tf.FIFOQueue(file_length,dtypes=[tf.string])
col_Image = tf_img_queue.dequeue(filename_queue)
### Read Image
img_file = tf.read_file(wd+'/'+col_Image)
image = tf.image.decode_png(img_file, channels=num_channels)
image = tf.cast(image, tf.float32) / 255.
image = tf.image.resize_images(image,[image_width, image_height])
min_after_dequeue = 100
capacity = min_after_dequeue + 3 * batch_size
image_batch, label_batch = tf.train.batch([image, onehot], batch_size=batch_size, capacity=capacity, allow_smaller_final_batch = True, min_after_dequeue=min_after_dequeue)
错误:类型错误:预期的字符串或缓冲区'
不知道我的做法对不对
您不必创建另一个队列。您可以定义一个 reader 来为您出列元素。您可以尝试以下方法并评论结果如何。
reader = tf.IdentityReader()
key, value = reader.read(filename_queue)
dir = tf.constant(wd)
path = tf.string_join([dir,tf.constant("/"),value])
img_file = tf.read_file(path)
要检查您输入的路径是否正确,请执行
print(sess.run(img_file))
期待您的反馈。
我是 tensorflow 的新手,我有一个张量(字符串类型),其中存储了我想用于训练模型的所有必需图像的图像路径。
问题:如何将张量读取到队列中,然后进行批处理。
我的方法是:给我错误
img_names = dataset['f0']
file_length = len(img_names)
type(img_names)
tf_img_names = tf.stack(img_names)
filename_queue = tf.train.string_input_producer(tf_img_names, num_epochs=num_epochs, shuffle=False)
wd=getcwd()
print('In input pipeline')
tf_img_queue = tf.FIFOQueue(file_length,dtypes=[tf.string])
col_Image = tf_img_queue.dequeue(filename_queue)
### Read Image
img_file = tf.read_file(wd+'/'+col_Image)
image = tf.image.decode_png(img_file, channels=num_channels)
image = tf.cast(image, tf.float32) / 255.
image = tf.image.resize_images(image,[image_width, image_height])
min_after_dequeue = 100
capacity = min_after_dequeue + 3 * batch_size
image_batch, label_batch = tf.train.batch([image, onehot], batch_size=batch_size, capacity=capacity, allow_smaller_final_batch = True, min_after_dequeue=min_after_dequeue)
错误:类型错误:预期的字符串或缓冲区'
不知道我的做法对不对
您不必创建另一个队列。您可以定义一个 reader 来为您出列元素。您可以尝试以下方法并评论结果如何。
reader = tf.IdentityReader()
key, value = reader.read(filename_queue)
dir = tf.constant(wd)
path = tf.string_join([dir,tf.constant("/"),value])
img_file = tf.read_file(path)
要检查您输入的路径是否正确,请执行
print(sess.run(img_file))
期待您的反馈。