Skip to main content
 首页 » 编程设计

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

2024年08月20日29findumars

我创建了两个使用均匀分布初始化的张量(即: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]

请您参考如下方法:

在您的代码中,x1 和y1 是随机数生成器。它们每次被调用时都采用不同的值。因此,当您调用 subtraction 时,它又会调用您的数字生成器 x1 和 y1,没有理由获得与之前一致的结果电话。

要实现您的目标,请将值存储在 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]))