1

Caffe 中的 Embed 层采用什么类型的输入?它是否需要已经以一种热门形式编码的单词?

假设,N = 输入句子中的单词数;M = 词汇量

那么单个句子的一个热向量将是 N x M 阶

这是否意味着输入的 dim 参数将为 N?

最后应该以什么格式保存句子,以便 Caffe 嵌入层可以正确读取?

4

1 回答 1

3

请参阅"Embed"层的文档:

用于学习单热向量输入的“嵌入”的层。等效于以单热向量作为输入的 InnerProductLayer,但为了提高效率,输入是每列本身的“热”索引。

因此,您的输入不是表示单词(或字符,或“项目”)的“热向量”,而是单词的紧凑表示:字典中单词的整数索引。

因此,如果您M=1000的字典中有单词并且您想学习嵌入到 100 维空间中:

layer {
  name: "embed1000_to_100"
  type: "Embed"
  bottom: "compact_one_hot_dim1000"
  top: "embed1000_to_100"
  embed_param {
    num_output: 100 # output dimension
    input_dim: 1000
  }
}

请注意, 的数据"compact_one_hot_dim1000"应为 (0..999) 范围内的整数。

有关更多信息,请参阅caffe.help

于 2017-03-13T17:16:29.370 回答