张量流中的多个if-else条件

时间:2017-06-16 01:31:47

标签: tensorflow

我有一个带形状(1)的浮动张量,其值介于0.0和1.0之间。 我想' bin'这个张量的范围,如:

if 0.0 < x < 0.2: 
  return tf.Constant([0])
if 0.2 < x < 0.4: 
  return tf.Constant([1])
if 0.4 < x < 0.6: 
  return tf.Constant([2])
if 0.6 < x: 
  return tf.Constant([3])

不知道怎么做!

2 个答案:

答案 0 :(得分:0)

您还没有解释边界点(0.2,0.4,...)会发生什么,并且没有显示您想要输出的x&gt; 0.6,所以我的假设是:

  • 闭合开放间隔; a&lt; x&lt; = b
  • 相同的bin程序持续到1,步骤为0.2

对于这样一个简单的情况,你不需要if else条件(也会很慢)。你可以用数学和演员来实现它:

import tensorflow as tf

x = tf.constant(0.25)
res = tf.cast(5 * x, tf.int32)
with tf.Session() as sess:
    print sess.run(res)

答案 1 :(得分:0)

  

尝试tg.logical_and   以下示例可能会有所帮助

b = tf.constant([5,2,-3,1])
c1 = tf.greater(b,0) # b>0
c2 = tf.less(b,5) # b<5
c_f = tf.logical_and(c1, c2) # 0 < b < 5
sess=tf.Session()
sess.run(c_f)