2016-10-29 6 views
0

私はtensorflowでコードを実装したいと思います.2つの数字aとbと数字 "true"を与え、ランダムな整数の配列を返します。真実。与えられたintとは異なるランダムな整数の配列を返すTensorflow関数

S = np.zeros((4)) 

どのように私はTensorflowを使用してそのような何かを定義することができますrandom.randintを使用した簡単なPythonで

例えばSが
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 

のようなものでしょうか? この関数は、tf.random_uniform([]、a、b、dtype = tf.int32)のように使用できますか?

+0

、神の愛のために、それはあなたがこのループを記述し、それは冗談だとする方法を、実際にはないことを教えてください。 – BallpointBen

+0

申し訳ありません、まったくばかばかしいようですが、これは冗談ではありません。テンソルフローの仕組みを理解しようとしているので、簡単な問題を作り出しています。私はテンソルフローのループと非常に混同しています。 –

答えて

0

1つの要素を範囲外に取り出して一様にサンプリングしたいとすれば、私は最初に[a、b]の代わりに[a、b - 1]範囲の外に出ている値以上の値に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())