使用Tensorflow计算数字百分比

Jaf*_*son 10 python tensorflow

我试过这个:

>>> import tensorflow as tf
>>> mul = tf.multiply(50,100)
>>> div = tf.divide(mul,50)
>>> mul
<tf.Tensor 'Mul_3:0' shape=() dtype=int32>
>>> div
<tf.Tensor 'truediv_2:0' shape=() dtype=float64>
>>> import tensorflow as tf
>>> x=50
>>> mul = tf.multiply(x,100)
>>> div = tf.divide(mul,50)
>>> mul
<tf.Tensor 'Mul_4:0' shape=() dtype=int32>
>>> div
<tf.Tensor 'truediv_3:0' shape=() dtype=float64>
Run Code Online (Sandbox Code Playgroud)

我没有看到任何数字.我想通过tensorflow完成百分比.
请告诉我这里缺少的东西.即使我尝试评估,我也得到了基于会话的错误.确实,我需要建立会话,但不知道如何在里面调用它.
如果我错过了什么,请告诉我.

Shu*_*hal 6

在你得到的打印陈述中,

<tf.Tensor 'Mul_4:0' shape=() dtype=int32>
Run Code Online (Sandbox Code Playgroud)

和其他这样的陈述.这是因为Python打印出Tensor Objects而不是它们的值.有两种方法可以解决这个问题.

  1. 启用急切执行.

    import tensorflow as tf
    tf.enable_eager_execution()
    
    Run Code Online (Sandbox Code Playgroud)

这将启用eager模式,您将获得张量的值而不是Tensor对象.这会在声明(因此渴望)时立即初始化张量.

  1. 使用tf.Session() a tf.Session()对象运行并评估图中的张量.它在图形模式下运行,而不是急切模式.

    with tf.Session as session:
        print( session.run( div ) )
    
    Run Code Online (Sandbox Code Playgroud)


小智 2

试试这个肯定会有帮助:

>>> import tensorflow as tf
>>> a = tf.placeholder(tf.float32)
>>> b = tf.placeholder(tf.float32)
>>> sess = tf.Session()
>>> percentage = tf.divide(tf.multiply(a,100),b)
>>> sess.run(tf.global_variables_initializer())
>>> sess.run(percentage,feed_dict={a:4,b:20})
20.0
>>> sess.run(percentage,feed_dict={a:50,b:50})
100.0
>>> sess.close()
Run Code Online (Sandbox Code Playgroud)

您可以参考简单的示例: https:
//stackoverflow.com/a/39747526/4948889
希望这会有所帮助。