以下代码
import tensorflow as tf
import numpy as np
weights = tf.Variable(np.random.uniform(0.0, 1.0, 3))
bias = tf.Variable(0.0)
trainingData = np.array(np.arange(15).astype(float).reshape(3,5))
output = tf.expand_dims(weights, 0) @ trainingData + bias
产生
这可以通过改为最后一行来解决
tf.cast(tf.expand_dims(weights, 0) @ trainingData, tf.float32) + bias
好的,所以它不喜欢在float32_ref
上添加float64,
,但是在float32_ref
上添加float32.
是可以的,但是我一定做错了,因为我所做的事情非常简单,并且会引发错误。 (我是TensorFlow的新手。)我理解为什么它不喜欢我写的东西,但是我犯了什么基本错误导致了这个问题?
我正在寻找这样的答案:“哦,永远不要使用0.0这样的浮点数来初始化偏差,因为...”“那将更普遍地导致类型转换错误。”
答案 0 :(得分:1)
哦,除非您有充分的理由,否则永远不要使用tf.Variable
。您应该改用tf.get_variable
来避免issues。
哦,除非您有充分的理由,否则永远不要使用float64作为数据类型。 NumPy使用float64作为默认值,因此您应该编写类似
的内容W = tf.get_variable("w", initializer=np.random.randn().astype(np.float32))