如何在TensorFlow中将Tensor变量初始化为单位矩阵

Dan*_*Que 5 python tensorflow

如何将Tensor T初始化为单位矩阵?

以下将T初始化为784×784的零矩阵.

T = tf.Variable(tf.zeros([784, 784]))
Run Code Online (Sandbox Code Playgroud)

但我找不到行为符合要求的tf.fn.如何才能做到这一点?

Mul*_*ter 7

您要查找的tf.fn称为tf.eye。因此,最简洁的答案是

T = tf.Variable(tf.eye(size))
Run Code Online (Sandbox Code Playgroud)

注意:将其放在tf.Variable中可以将可识别的权重初始化为身份,但可以对其进行更改。如果您实际上只是想要一个恒等矩阵的常数,则只需使用

T = tf.eye(size)
Run Code Online (Sandbox Code Playgroud)

  • 伙计,Tensorflow的变化是如此之快,以至于很难一一理解,缺少一个小功能也没什么大不了的(我也喜欢您的解决方案)。据我所知,它是在[v0.12](https://www.tensorflow.org/versions/r0.12/api_docs/python/math_ops/matrix_math_functions#eye)中添加的(至少我不能在v0.11中找到它,但在v0.12中可以找到它)。https://www.tensorflow.org/versions/ (2认同)

eag*_*arn 6

您实际上可以将numpy数组作为initial_value的参数传递,因此tf.Variable(initial_value = np.identity(784))应该执行您想要执行的操作.