gpt4 book ai didi

python - 将 tensorflow 中具有不同等级的两个占位符相乘

转载 作者:太空宇宙 更新时间:2023-11-03 20:02:25 26 4
gpt4 key购买 nike

我有两个尺寸如下的占位符

x_ph = tf.placeholder(tf.float32,[None, 4]) 

y_ph = tf.placeholder(tf.float32,[None, 4, 3])

我想将 x 的每个元素与 y_ph 的一行相乘,以获得形状 (None, 4, 3) 的输出.

我正在寻找的输出示例,

x = np.random.uniform(-1,1, (2,2))
z = np.random.uniform(-1,1, (2,2,3))
x, z

([[ 0.27083503, -0.13795923],[ 0.8436118 , 0.00771057]])

([[[ 0.51905276, 0.01173655, -0.57335926],
[ 0.42347431, -0.05438272, 0.21042366]]
[[ 0.91347706, -0.28086164, 0.54952429],
[ 0.41551953, -0.6207727 , 0.32066292]]]))

我想做以下操作:

result = np.zeros((2,3))
for i in range(2):
for j in range(2):
result[i] += x[i,j]*z[i,j,:]
print(result)
[[ 0.08215548 0.01068127 -0.18431566]
[ 0.77382391 -0.2417247 0.46605767]]

有什么方法可以在 tensorflow 中做到这一点吗?

最佳答案

x_ph 末尾添加一维,以便您可以使用广播来将两个张量相乘:

import tensorflow as tf
x_ph = tf.placeholder(tf.float32,[None, 4])
y_ph = tf.placeholder(tf.float32,[None, 4, 3])
result = tf.expand_dims(x_ph, -1) * y_ph

关于python - 将 tensorflow 中具有不同等级的两个占位符相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59162583/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com