我是Tensorflow的新手,我正在尝试将图像切片然后灰度图像。到目前为止我的代码看起来像这样。我首先获取输入,然后将图像数据提取到张量,然后切片图像的中间部分。这一步可以忽略权重等,只是想给读者上下文:
##############################
# NETWORK IMPLEMENTATION #
##############################
tf.reset_default_graph()
########
#Forward
##Inputs
input = tf.placeholder(shape=[210, 160, 3], dtype=tf.float32)
print(input.get_shape())
#inputs = tf.reshape(input, [1, 210, 160, 3])
#print(inputs.get_shape())
##Grayscale
#inputs = tf.image.rgb_to_grayscale(input, name=None)
#print(inputs.get_shape())
#Slicing
inputs = tf.slice(input, [25, 0, 0], [160, 160, 3])
print(inputs.get_shape())
#Downsample to new dimensions
#inputs = tf.image.decode_jpeg(inputs)
inputs = tf.image.resize_images(inputs, [84, 84])
print(inputs.get_shape())
inputs = tf.reshape(inputs, [1, -1])
print(inputs.get_shape())
W = tf.Variable(tf.random_uniform([84*84, 6], 0.00, 0.01))
Qout = tf.matmul(inputs, W)
predict = tf.argmax(Qout, 1) #why exactly this operation?
然而,每当我运行它时,我都会收到错误消息:
Traceback (most recent call last):
File "main.py", line 43, in <module>
inputs = tf.image.resize_images(inputs, [84, 84])
TypeError: resize_images() takes at least 3 arguments (2 given)
我已阅读有关切片和调整大小的文档,但我仍感到困惑。如上所述,我是tensorflow的新手,会感激任何帮助:)
我试着评论调试,但我甚至不确定是否会导致问题。我总是得到上述错误。
答案 0 :(得分:0)
更新
看起来您使用的是旧版本的tensorflow并且没有说明它。要修复错误,请将其更改为。
inputs = tf.image.resize_images(inputs, 84, 84)
在这种情况下,第一个84是新高度,第二个是宽度。
旧答案适用于tensorflow 1.0: 我认为你的问题是
inputs = tf.image.resize_images(inputs, [84, 84, 3])
应该是
inputs = tf.image.resize_images(inputs, [84, 84])
因为尺寸应仅描述高度和宽度,并且不应包括通道数。