Tensorflow函数,返回不同于给定int的随机整数数组



我想在tensorflow中实现一个代码,给定两个数字a,b和一个数字"true",返回一个随机整数数组,每个人都不同于true。

在简单的python中使用random。Randint应该是

def get_a_rand(a,b,true, S):
    for i in range(S.shape[0]):
        k = True
        while (k):
            r = (randint(a,b))
            if r!= true:                
                k = False
                S[i] = r
            else:
                k = True
    return S

其中S为例:

S = np.zeros((4))

我如何使用Tensorflow来定义这样的东西?用这个函数,可能是tf。Random_uniform ([],a,b, dtype=tf.int32) ??

假设您只想从范围中取出一个元素,并且均匀采样,我建议首先从一个较小的范围中生成([a, b - 1]而不是[a, b]),然后为大于或等于您从范围中取出的值添加1。

在TensorFlow:

import tensorflow.google as tf
range_start = 0
range_end = 10 # inclusive
avoid_value = 3
value_count = 50
with tf.Session():
  # First sample from [range_start, range_end); maxval is exclusive
  one_smaller_range = tf.random_uniform(dtype=tf.int32, minval=range_start, maxval=range_end, shape=[value_count])
  # Increment for values >= the removed element
  sampled_numbers = tf.select(one_smaller_range >= avoid_value, one_smaller_range + 1, one_smaller_range)
  print(sampled_numbers.eval())

最新更新