gpt4 book ai didi

python - 在 Tensorflow 中,是否有操作/是否有操作来接受张量(文件名)并输出图像?

转载 作者:太空宇宙 更新时间:2023-11-04 05:28:58 25 4
gpt4 key购买 nike

我希望能够批量读取图像。但是,这些批处理必须由 python 脚本构建(由于各种原因,它们不能提前放入文件中)。什么是最有效的方法,在 tensorflow 中执行以下操作:

(1) 提供:指向图像的 B 可变长度字符串的 python 列表,所有具有相同的大小。 B 是批量大小。(2) 对每个字符串,加载它对应的图片,应用5%的随机crop(crop是随机的,但crop的大小是固定的)(3) 将图像拼接成大小为 B x H x W x 3 的张量

如果这不可能,是否有人有关于在 python 中加载和预处理图像然后将它们放入队列的效率损失的任何基准/数据?我认为如果在 tensorflow 上内部完成图像加载/预处理,网络将运行得更快。

最佳答案

我是这样理解你的问题的:

  • 你有一些图片
  • 你有一个函数 sample_batch() 返回一批大小为 B 的文件名
  • 你想读取这些文件名对应的图片并进行预处理
  • 最后你输出了一批这样的例子

input = tf.placeholder(tf.string, name='Input')
queue = tf.FIFOQueue(capacity, tf.string, [()], name='Queue')
enqueue_op = queue.enqueue_many(input)

reader = tf.WholeFileReader()
filename, content = reader.read(queue)
image = tf.image.decode_jpeg(content, channels=3)

# Preprocessing
image = tf.random_crop(image, [H, W, 3])
image = tf.to_float(image)
batch_image = tf.train.batch([image], batch_size=B, name='Batch')
output = inference(batch_image)

然后在 session 中,您必须使用 sample_batch() 函数中的文件名运行入队操作:

with tf.Session() as sess:
tf.train.start_queue_runners()
for i in range(NUM_STEPS):
batch_filenames = sample_batch()
sess.run(enqueue_op, feed_dict={input: batch_filenames})
sess.run(output)

关于python - 在 Tensorflow 中,是否有操作/是否有操作来接受张量(文件名)并输出图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37752780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com