假設我想對從另一個矩陣中的條目定義的分佈中採樣的每個條目採樣一個矩陣。我展開我的矩陣並將map_fn應用於每個元素。使用相對較小的矩陣(128 x 128),以下給出了幾個PoolAllocator警告(GTX TITAN Black),並且不會在任何合理的時間內進行訓練。用map_fn進行元素採樣緩慢
def sample(x):
samples = tf.map_fn(lambda z:
tf.random_normal([1], mean=z,
stddev=tf.sqrt(z * (1 - z))),
tf.reshape(x, [-1])) # apply to each element
return tf.cond(is_training, lambda: tf.reshape(samples, shape=tf.shape(x)),
lambda: tf.tanh(x))
有沒有更好的方法來應用像這樣的元素操作?