张量,tensorflow,keras"/>

首页 > 解决方案 > Tensorflow dense_image_warp 无法转换类型的对象张量

问题描述

在 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.

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

标签: tensorflowkeras

解决方案


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

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

该函数需要 batch_size。在使用 Keras 时,您通常可以摆脱它。


推荐阅读