在Tensorflow中对随机变量进行的操作无法正常工作

发布于 2021-01-29 17:57:37

我创建了两个Tensors(即x1,y2),它们使用均匀分布进行了初始化,但是当我打印出结果时,它们不是我期望的。

这是我的代码:

x1 = tf.random_uniform([1], 0, 10, tf.int32)
y1 = tf.random_uniform([1], 0, 10, tf.int32)

subtraction = x1 - y1

with tf.Session() as sess:

    print(sess.run(x1))
    print(sess.run(y1))
    print(sess.run(subtraction))

结果如下:

[6]

[2]

[0]

关注者
0
被浏览
49
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    在您的代码中,x1y1是随机数生成器。每次调用时,它们采用不同的值。因此,当您致电时subtraction,又依次致电您的数字生成器x1y1,则没有理由获得与先前通话一致的结果。

    为了实现您的期望,请将值存储在中Variable

    import tensorflow as tf
    
    x1 = tf.Variable(tf.random_uniform([1], 0, 10, tf.int32))
    y1 = tf.Variable(tf.random_uniform([1], 0, 10, tf.int32))
    
    subtraction = x1 - y1
    
    with tf.Session() as sess:
        sess.run(tf.global_variables_initializer())
        print(sess.run(x1))
        print(sess.run(y1))
        print(sess.run(subtraction))
    

    另外,如果您不需要迭代之间的持久性,并且可以一次调用所有依赖于数字生成器的运算符,则将它们打包到同一调用中sess.run

    import tensorflow as tf
    
    x1 = tf.random_uniform([1], 0, 10, tf.int32)
    y1 = tf.random_uniform([1], 0, 10, tf.int32)
    
    subtraction = x1 - y1
    
    with tf.Session() as sess:
        print(sess.run([x1, y1, subtraction]))
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看