数据类型参数如何在TensorFlow的Value函数中使用?

时间:2017-10-12 09:10:33

标签: python numpy tensorflow

在TensorFlow中创建变量时,我们可以指定数据类型。但是,我认为这个论点只是被忽略了。例如:

In [26]: b = tf.Variable([3.0, 4.0, 5.0], tf.float64)

In [27]: b.dtype
Out[27]: tf.float32_ref

In [28]: b = tf.Variable(np.array([3.0, 4.0, 5.0]), tf.float64)

In [29]: b.dtype
Out[29]: tf.float64_ref

In [30]: b = tf.Variable(np.array([3.0, 4.0, 5.0]), tf.float32)

In [31]: b.dtype
Out[31]: tf.float64_ref

因此,如果我从Python列表中初始化值,我会得到tf.float32_ref作为类型(即使我将tf.float64作为Value函数的第二个参数)。如果我使用numpy数组进行值初始化,情况则相反(即使我将tf.float64_ref作为tf.float32函数的第二个参数),我也得到Value作为数据类型。

我猜数据类型取自用于值初始化的对象的数据类型。哪种有意义,但为什么我们需要Value函数中的dtype参数?

1 个答案:

答案 0 :(得分:1)

我认为问题只是变量构造函数的第二个参数不是dtype:

>>>b = tf.Variable(np.array([3.0, 4.0, 5.0]), tf.float32)
>>>b.dtype
tf.float64_ref
>>>b = tf.Variable(np.array([3.0, 4.0, 5.0]), dtype=tf.float32)
>>>b.dtype
tf.float32_ref

您可以查看文档here:第二个参数是“可训练的”。

作为旁注:在更新版本的Tensorflow中,advised使用tf.get_variable创建变量而不是tf.Variable()