gpt4 book ai didi

python - 如何在 tensorflow 中处理不同的队列批量大小和馈送值批量大小?

转载 作者:行者123 更新时间:2023-12-01 04:03:26 26 4
gpt4 key购买 nike

我的代码曾经在tensorflow 0.6上运行,但它不再在最新的tensorflow上运行。

我想每隔几次训练迭代就执行一次推理。我的训练数据是从队列中提取的,我的推理数据来自 feed_dict。训练批量大小为 128,推理批量大小为 1。我应该怎样做才能使网络接受两种不同的批量大小?

batch_size = 128
x_batch = tf.placeholder("float", [None, 100])
q = tf.FIFOQueue(10, [tf.float32], shapes=[[batch_size, 100]])
enqueue_op = q.enqueue([x_batch])

# during training
x = q.dequeue() # dequeue operation

# network definition, takes x as input, and output y
......

# during inference
x_array_of_batch_size_1 = .. # a 1x100 numpy array
sess.run([y], feed_dict={x: x_array_of_batch_size_1))

我收到以下错误:

ValueError: Cannot feed value of shape (1, 100) for Tensor u'fifo_queue_Dequeue:0', which has shape '(128, 100)'

最佳答案

我们最近添加了此检查以防止错误(并添加了一些优化机会)。您可以通过更改 x 的声明以使用新的 tf.placeholder_with_default() 操作来使程序再次运行:

x = tf.placeholder_with_default(q.dequeue(), shape=[None, 100])

关于python - 如何在 tensorflow 中处理不同的队列批量大小和馈送值批量大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36105763/

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