Tensorflow dense_image_warp无法转换类型为<;的对象;类型';列表'&燃气轮机;到张量

Tensorflow dense_image_warp无法转换类型为<;的对象;类型';列表'&燃气轮机;到张量,tensorflow,keras,Tensorflow,Keras,在Ubuntu 16.04和14.04上使用最新的Keras和Tensorflow。对于以下代码: img2D = Input(shape=(100, 100, 3)) refPosX = Input(shape=(100, 100, 1)) refPosY = Input(shape=(100, 100, 1)) # refImg = Input(shape=(100, 100, 3)) # Passing values to depth net depth_map = depth_net(

在Ubuntu 16.04和14.04上使用最新的Keras和Tensorflow。对于以下代码:

img2D = Input(shape=(100, 100, 3))
refPosX = Input(shape=(100, 100, 1))
refPosY = Input(shape=(100, 100, 1))
# refImg = Input(shape=(100, 100, 3))

# Passing values to depth net
depth_map = depth_net(dFeatures)
curX = tf.multiply(depth_map, refPosX)
# curY = K.dot(depth_map, refPosY)
curY = tf.multiply(depth_map, refPosY)
# dMove = concatenate([curX, curY])
dMove = tf.concat([curX, curY], axis=3)

warped = tfc.image.dense_image_warp(img2D, dMove)
我正在接收错误输出:

Using TensorFlow backend.
Traceback (most recent call last):
File "/home/carson/ws/dla/test_network_5/depth_and_color_nets.py", line 89, in <module>
File "/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/image/python/ops/dense_image_warp.py", line 195, in dense_image_warp
    [batch_size, height * width, 2])
 File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_array_ops.py", line 6482, in reshape
"Reshape", tensor=tensor, shape=shape, name=name)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/op_def_library.py", line 513, in _apply_op_helper
raise err
TypeError: Failed to convert object of type <type 'list'> to Tensor. Contents: [None, 10000, 2]. Consider casting elements to a supported type.
使用TensorFlow后端。
回溯(最近一次呼叫最后一次):
文件“/home/carson/ws/dla/test_network_5/depth_and_color_nets.py”,第89行,in
文件“/usr/local/lib/python2.7/dist packages/tensorflow/contrib/image/python/ops/densite\u image\u warp.py”,第195行,在densite\u image\u warp中
[批次大小、高度*宽度,2])
文件“/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_-array_-ops.py”,第6482行,在“重塑”中
“重塑”,张量=张量,形状=形状,名称=名称)
文件“/usr/local/lib/python2.7/dist packages/tensorflow/python/framework/op_def_library.py”,第513行,位于“应用”和“操作”帮助程序中
提出错误
TypeError:无法将类型的对象转换为Tensor。目录:[无,10000,2]。将铸造元素考虑为支持类型。

我有点困惑,因为我不知道我哪里出了问题。为什么元素不是受支持的类型?我在什么时候向函数传递列表对象?

对于感兴趣的人,必须将输入定义为

Input(batch_shape=(batch_size, h, w, c))

该函数需要批处理大小。在使用Keras时,通常可以不使用Keras而不使用Keras。

错误来自输入的形状。函数
tfc.image.densite\u image\u warp
需要输入指定批量大小的形状
[批次、高度、宽度、通道]
[批次、高度、宽度、2]
。(比照)

特别是,不支持批大小的
None
值,这会导致您遇到错误