Caffe Embed层输入

Caffe中的Embed层接受什么类型的输入?它是否接受已经编码成独热形式的词语?

假设,N = 输入句子中的词语数量;M = 词汇表大小

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

这是否意味着输入维度参数将是N?

最后,句子应该以什么格式保存,以便Caffe的Embed层能够正确读取?


回答:

请查看"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 # 输出维度    input_dim: 1000  }}

请注意,"compact_one_hot_dim1000"的数据应该是范围在(0..999)的整数。

有关更多信息,请查看caffe.help

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注