Kar*_*kan 16 python machine-learning tensorflow
我正在尝试使用:train = optimizer.minimize(loss)但标准优化器无法使用tf.float64.因此,我想我的截断loss从tf.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].
Run Code Online (Sandbox Code Playgroud)
mrr*_*rry 43
简短的回答是你可以将张量转换tf.float64为tf.float32使用tf.cast()op:
loss = tf.cast(loss, tf.float32)
Run Code Online (Sandbox Code Playgroud)
更长的答案是,这不会解决优化器的所有问题.(缺乏支持tf.float64是一个已知问题.)优化器要求tf.Variable您尝试优化的所有对象也必须具有类型tf.float32.
| 归档时间: |
|
| 查看次数: |
32459 次 |
| 最近记录: |