张量流:在两个不同形状的张量的第一维上压缩

2024-04-25 21:09:49 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有两个张量,它们的形状分别是[b, n][b, n, m]。这些可以解释为每个形状[n]的一批输入向量和每个形状[n, m]的一批权重矩阵,其中批大小是b。我想将这些元素在第一维度上按元素配对,这样每个输入向量都有一个对应的权重矩阵,然后将每个输入乘以它的权重,得到一个形状[b, m]的张量。你知道吗

在普通Python中,我怀疑这看起来像

output_list = [matmul(w, i) for w, i in zip(weight_list, input_list)]

但是还没有找到张量流的类似物,有没有办法呢?你知道吗


Tags: in元素forinputoutput矩阵zip向量
1条回答
网友
1楼 · 发布于 2024-04-25 21:09:49

tf.matmul可以对批处理中的每个训练示例执行matmul。但是你需要处理一些维度的问题来实现你的目标。你知道吗

import tensorflow as tf

b,n,m = 4,3,2
weight_list = tf.random.normal(shape=(b,n,m))
input_list = tf.random.normal(shape=(b,n))
result = tf.squeeze(tf.matmul(tf.expand_dims(input_list,axis=1),weight_list))
print(result.shape)

(4, 2)

相关问题 更多 >