【问题标题】:Tensorflow matrices broadcastTensorFlow 矩阵广播
【发布时间】:2018-06-02 06:02:24
【问题描述】:

在 tensorflow 中,我尝试添加两个矩阵。一个是 3 x 3 矩阵,另一个是 3 x 1 矩阵,所以我希望广播后一个矩阵。 但结果出乎我的意料。 你能解释一下在下面的代码中执行了什么样的计算吗?

import tensorflow as tf
import numpy as np

A = tf.random_normal([3, 3], mean=1, stddev=4, seed = 1)
B = tf.Variable([[1, 2, 3]], dtype=tf.float32)
C = A + B

init = tf.initialize_all_variables()

with tf.Session() as sess:
    sess.run(init)
    print("A")
    print(A.eval())
    print("\nB")
    print(B.eval())
    print("\nC")
    print(C.eval())

结果如下。

A
[[-2.24527287  6.93839502  1.26131749]
[-8.77081585  1.39699364  3.36489725]
[ 3.37129188 -7.49171829 -1.89158893]]

B
[[ 1.  2.  3.]]

C
[[ 6.96361637  4.79503536  5.32562923]
[ 2.75787783  2.64941168  2.83947849]
[ 1.70853901  9.26744461  1.85234141]]

【问题讨论】:

    标签: python tensorflow


    【解决方案1】:

    您的问题不是矩阵广播问题,而是源于您使用随机数生成器而不是同时执行节点的事实。见this question

    要查看示例中的广播,请使用

    sess.run([A, B, C])
    

    【讨论】:

    • 感谢您的评论。我明白了。
    猜你喜欢
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 1970-01-01
    • 2020-06-25
    相关资源
    最近更新 更多