tf.ones(dtype = tf.float32)或tf.ones(dtype = tf.int32)表现不同

时间:2018-06-04 07:17:05

标签: python tensorflow

当我使用 dtype = tf.float32 时,

import tensorflow as tf

z = tf.Variable(tf.ones(5, dtype=tf.float32), name='z')
init = tf.global_variables_initializer()
with tf.Session() as session:

        session.run(init)
        print("z=" , session.run(z))
        for i in range(5):
            z = z +1 
            print(session.run(z))

我得到了这样的结果:

('z=', array([0., 0., 0., 0., 0.], dtype=float32))
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]

但是,当我使用 dtype = tf.int32 时,

z = tf.Variable(tf.ones(5, dtype=tf.int32), name='z')

我得到了结果:

('z=', array([1, 1, 1, 1, 1], dtype=int32))
[2 2 2 2 2]
[3 3 3 3 3]
[4 4 4 4 4]
[5 5 5 5 5]
[6 6 6 6 6]

使用 tf.float32 时,你能帮我解释为什么它看起来不正确吗?

0 个答案:

没有答案