怎么把tf.int64转换成tf.float32?
tensorflow
7
0

我试过了:

test_image = tf.convert_to_tensor(img, dtype=tf.float32)

然后出现以下错误:

ValueError: Tensor conversion requested dtype float32 for Tensor with dtype int64: 'Tensor("test/ArgMax:0", shape=TensorShape([Dimension(None)]), dtype=int64)'
参考资料:
Stack Overflow
收藏
评论
共 3 个回答
高赞 时间 活跃

糟糕,我在API中找到了该函数...

 tf.to_float(x, name='ToFloat')
收藏
评论

您通常可以使用以下方法进行投放:

tf.cast(my_tensor, tf.float32)

将tf.float32替换为所需的类型。


编辑 :似乎至少在目前, tf.cast不会转换为未签名的tf.uint8 (例如tf.uint8 )。要解决此问题,可以将其转换为已签名的等效项,并使用tf.bitcast进行操作。例如

tf.bitcast(tf.cast(my_tensor, tf.int8), tf.uint8)
收藏
评论

您可以使用tf.cast(x, tf.float32)tf.to_float(x) ,两者都tf.to_float(x)为float32。

例:

sess = tf.Session()

# Create an integer tensor.
tensor = tf.convert_to_tensor(np.array([0, 1, 2, 3, 4]), dtype=tf.int64)
sess.run(tensor)
# array([0, 1, 2, 3, 4])

# Use tf.cast()
tensor_float = tf.cast(tensor, tf.float32)
sess.run(tensor_float)
# array([ 0.,  1.,  2.,  3.,  4.], dtype=float32)

# Use tf.to_float() to cast to float32
tensor_float = tf.to_float(tensor)
sess.run(tensor_float)
# array([ 0.,  1.,  2.,  3.,  4.], dtype=float32)
收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号