首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >嵌入模型内与模型外

嵌入模型内与模型外
EN

Stack Overflow用户
提问于 2022-09-06 16:01:25
回答 1查看 45关注 0票数 1

在模型内部使用嵌入层与在模型外部使用嵌入层有什么区别?我可以将嵌入层构建到模型中:

代码语言:javascript
运行
复制
model = tf.keras.Sequential()
model.add(tf.keras.layers.Embedding(input_dim=1000, output_dim=64, input_length=10))
...
model.fit(features, target ...)

我还可以使用模型外部的embdedding生成嵌入式数据,然后将其输入到模型中:

代码语言:javascript
运行
复制
embedding_encoder = tf.keras.layers.Embedding(input_dim=1000, output_dim=64)
embedded_features = embedding_encoder(features)
...

model.fit(embedded_features, target ...)

这是否意味着如果我在模型之外使用嵌入,则在训练期间不学习嵌入参数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-06 16:20:40

是否意味着如果我在模型之外使用嵌入,则在训练期间不会学习嵌入参数吗?

Embedding层分配的密集向量表示通常只有在设置trainable=True时才可训练。这完全取决于您如何自己对数据进行预处理,以及您希望留给Embedding层多少。通常,如果您正在处理NLP任务,您可以在添加一个StringLookupTextVectorization层之前添加一个Embedding层,该层允许您对文本进行预处理,并在没有任何“手动”步骤的情况下以优雅的方式进行培训。

一般

每个输入到Embedding层的整数值都映射到一个唯一的N维向量表示,其中N是由您选择的。默认情况下,这些向量表示是从均匀分布中提取的。Embedding层继承了包含可训练参数的tf.keras.layers.Layer

我认为,如果您使用预先训练过的上下文敏感向量,并且不希望在培训期间更新它们的值,那么在模型之外生成嵌入数据可能是有意义的。但再说一次,一切都取决于你。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73624865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档