tensorflow - 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.
我有点困惑,因为我不知道我要去哪里错了。为什么元素不是受支持的类型?我在什么时候将列表对象传递给函数?
解决方案
对于那些感兴趣的人,您必须将输入定义为
Input(batch_shape=(batch_size, h, w, c))
该函数需要 batch_size。在使用 Keras 时,您通常可以摆脱它。
推荐阅读
- scala - 无法使用 Scala 停止定义的递归函数
- eclipse - Oracle JDBC 异常,在 webapp 中,在 Tomcat 部署中:java.sql.DriverManager.getDriver 中没有合适的驱动程序
- javascript - React 反模式,定义一个组件里面定义另一个组件
- php - Laravel 5. String Var 子句不起作用的地方
- jsonpath - 如何为可能具有两种不同类型的元素指定替代 json 路径
- android - 带有折叠工具栏的 CoordinatorLayout,NestedScrollView 和 RecyclerView 底部有空白空间(滚动太远)
- python - 员工 replace_employee 使用与 parent_id(直接经理)相同的访问权限和规则
- r - 来自 7 列 80 行的随机样本
- django - 如何在模型序列化器的创建方法中设置序列化器自定义字段?
- django - 选择模板中最新更新的评论