小编Abr*_*rar的帖子

tf.multiply vs tf.matmul计算点积

我有一个矩阵(矢量)X形状[3,4],我想计算每对矢量(X [1] .X [1])和(X [1] .X [之间的点积] 2])...等.

我看到他们使用的余弦相似代码

tf.reduce_sum(tf.multyply(X,X),axis = 1)

计算向量矩阵中向量之间的点积.然而,这个结果只计算(X [​​i],X [i])之间的点积.

我用tf.matmul(X,X,transpose_b = TRUE),其计算每两个向量的点积,但我仍然感到困惑,为什么tf.multiply没有做到这一点,我认为我的代码的问题.

代码是:

data=[[1.0,2.0,4.0,5.0],[0.0,6.0,7.0,8.0],[8.0,1.0,1.0,1.0]]
X=tf.constant(data)
matResult=tf.matmul(X, X, transpose_b=True)

multiplyResult=tf.reduce_sum(tf.multiply(X,X),axis=1)
with tf.Session() as sess:
   print('matResult')
   print(sess.run([matResult]))
   print()
   print('multiplyResult')
   print(sess.run([multiplyResult]))
Run Code Online (Sandbox Code Playgroud)

输出是:

matResult
[array([[  46.,   80.,   19.],
       [  80.,  149.,   21.],
       [  19.,   21.,   67.]], dtype=float32)]

multiplyResult
 [array([  46.,  149.,   67.], dtype=float32)]
Run Code Online (Sandbox Code Playgroud)

我很感激任何建议

python tensorflow

10
推荐指数
2
解决办法
2万
查看次数

我如何限制张量流中变量的范围

我想使用张量流训练模型。

我有以下变量,我希望模型学习它

Mj=tf.get_variable('Mj_',dtype=tf.float32, shape=[500,4],initializer=tf.random_uniform_initializer(maxval=1, minval=0))
Run Code Online (Sandbox Code Playgroud)

我希望Mj的结果值介于0和1之间。如何添加此约束?

variables tensorflow

6
推荐指数
1
解决办法
1552
查看次数

标签 统计

tensorflow ×2

python ×1

variables ×1