Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将tensorflow中两个不同等级的占位符相乘_Python_Tensorflow - Fatal编程技术网

Python 将tensorflow中两个不同等级的占位符相乘

Python 将tensorflow中两个不同等级的占位符相乘,python,tensorflow,Python,Tensorflow,我有两个尺寸如下的唱盘 x_ph = tf.placeholder(tf.float32,[None, 4]) 及 我想将x的每个元素与y\u ph的一行相乘,得到形状(无,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]]) ([[[

我有两个尺寸如下的唱盘

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

我想将
x
的每个元素与
y\u ph
的一行相乘,得到形状
(无,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\u ph
的末尾添加一个维度,这样您就可以使用广播将两个张量相乘:

将tensorflow导入为tf
x_ph=tf.placeholder(tf.float32,[None,4])
y_ph=tf.placeholder(tf.float32,[None,4,3])
结果=tf.展开直径(x\u ph,-1)*y\u ph

x\u ph
的末尾添加一个维度,以便您可以使用广播将两个张量相乘:

将tensorflow导入为tf
x_ph=tf.placeholder(tf.float32,[None,4])
y_ph=tf.placeholder(tf.float32,[None,4,3])
结果=tf.展开直径(x\u ph,-1)*y\u ph

谢谢,它工作得很好,但我必须添加tf。reduce_sum(result,axis=1)@AlirezaMoradzadeh啊好的,我以为你想要输出shape
(None,4,3)
。谢谢,它工作得很好,但我必须添加tf。reduce_sum(result,axis=1)@AlirezaMoradzadeh啊好的,我以为你想要输出shape
(None,4,3)
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]]