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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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