TensorFlow:将float64张量转换为float32
machine-learning
python
tensorflow
11
0

我正在尝试使用: train = optimizer.minimize(loss)但标准优化器无法与tf.float64一起tf.float64 。因此,我想将losstf.float64截断为仅tf.float32

Traceback (most recent call last):
  File "q4.py", line 85, in <module>
    train = optimizer.minimize(loss)
  File "/Library/Python/2.7/site-packages/tensorflow/python/training/optimizer.py", line 190, in minimize
    colocate_gradients_with_ops=colocate_gradients_with_ops)
  File "/Library/Python/2.7/site-packages/tensorflow/python/training/optimizer.py", line 229, in compute_gradients
    self._assert_valid_dtypes([loss])
  File "/Library/Python/2.7/site-packages/tensorflow/python/training/optimizer.py", line 354, in _assert_valid_dtypes
    dtype, t.name, [v for v in valid_dtypes]))
ValueError: Invalid type tf.float64 for Add_1:0, expected: [tf.float32].
参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

简短的答案是可以使用tf.cast() op将张量从tf.float64转换为tf.float32

loss = tf.cast(loss, tf.float32)

更长的答案是,这不能解决优化器的所有问题。 (缺少对tf.float64的支持是一个已知问题 。)优化器要求您尝试优化的所有tf.Variable对象也必须具有类型tf.float32

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号