作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的代码曾经在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/
我是一名优秀的程序员,十分优秀!