sma*_*lis 2 neural-network deep-learning conv-neural-network pytorch
我正在创建一个网络网络,它将采用连续值矩阵以及一些表示为所有类向量的分类输入。
现在,我也在寻找通过卷积从矩阵中提取特征。但如果我将矩阵减少到 1 维并与类向量连接,这是不可能的。
有没有办法将其连接在一起作为单个输入?或者我是否必须创建两个单独的输入层,然后在卷积后以某种方式将它们连接起来?如果是后者,我要寻找什么功能?
从分类数据创建连续值的最常见方法是nn.Embedding。它创建可用类的可学习向量表示,使得两个相似的类(在特定上下文中)比两个不相似的类更接近。
当您有大小为[v]的类向量时,嵌入将创建大小为[v, embedding_size]的张量,其中每个类由长度为embedding_size的向量表示。
num_classes = 4
embedding_size = 10
embedding = nn.Embedding(num_classes, embedding_size)
class_vector = torch.tensor([1, 0, 3, 3, 2])
embedded_classes = embedding(class_vector)
embedded_classes.size() # => torch.Size([5, 10])
Run Code Online (Sandbox Code Playgroud)
如何将它们与连续矩阵结合起来取决于您的特定用例。如果您只想要一个一维向量,您可以展平并连接它们。另一方面,如果矩阵具有您想要保留的有意义的维度,您应该决定连接哪个维度有意义并调整 embedding_size以便它们可以连接。
| 归档时间: |
|
| 查看次数: |
5491 次 |
| 最近记录: |