除tensorflow中的一个非零元素外,创建全零

时间:2018-03-19 10:16:14

标签: tensorflow

我想创建一个M * N张量,其中所有元素都是零,除了每行一个随机元素,它应该是一个,但我不知道如何。

1 个答案:

答案 0 :(得分:0)

这是一种方法:

import tensorflow as tf

m = 4
n = 6
dt = tf.float32
random_idx = tf.random_uniform((m, 1), maxval=n, dtype=tf.int32)
result = tf.cast(tf.equal(tf.range(n)[tf.newaxis], random_idx), dtype=dt)
with tf.Session() as sess:
    print(sess.run(result))

输出:

[[ 0.  0.  0.  0.  0.  1.]
 [ 0.  0.  1.  0.  0.  0.]
 [ 0.  1.  0.  0.  0.  0.]
 [ 0.  1.  0.  0.  0.  0.]]