Python Pytorch:使用nn.嵌入对分类特征进行编码

Python Pytorch:使用nn.嵌入对分类特征进行编码,python,pytorch,Python,Pytorch,我是个新手。我学习了一些关于如何使用pytorch构建简单NN模型的教程,例如()。我发现他们更喜欢nn.嵌入来编码分类特征。我的问题是:(1)为什么不使用一个热编码?(2) 嵌入是随机初始化的,我认为嵌入的数值不会被训练,因为它们被当作输入。如果nn.嵌入随机初始化分类特征,它会对训练产生负面影响吗?(1)嵌入通常是低维和连续的。这使他们更适合NN培训 (2) 如果您刚刚初始化了它们,则应该对它们进行培训。它们被视为模型的一部分,有点像连接一个热编码值与模型其余部分的连接点。(1)嵌入通常是低

我是个新手。我学习了一些关于如何使用pytorch构建简单NN模型的教程,例如()。我发现他们更喜欢nn.嵌入来编码分类特征。我的问题是:(1)为什么不使用一个热编码?(2) 嵌入是随机初始化的,我认为嵌入的数值不会被训练,因为它们被当作输入。如果nn.嵌入随机初始化分类特征,它会对训练产生负面影响吗?

(1)嵌入通常是低维和连续的。这使他们更适合NN培训

(2) 如果您刚刚初始化了它们,则应该对它们进行培训。它们被视为模型的一部分,有点像连接一个热编码值与模型其余部分的连接点。

(1)嵌入通常是低维和连续的。这使他们更适合NN培训


(2) 如果您刚刚初始化了它们,则应该对它们进行培训。它们被视为模型的一部分,有点像连接一个热编码值与模型其余部分的连接。

但我猜嵌入的值在训练期间不会改变,因为特征被视为输入,这是固定的?@JYY在神经网络中几乎所有东西都是下一层的输入。这并不妨碍它的可训练性。事实上,它只是一个线性投影层。但我猜在训练过程中嵌入的值不会改变,因为特征被视为输入,这是固定的?@JYY在神经网络中几乎所有东西都是下一层的输入。这并不妨碍它的可训练性。实际上,它只是一个线性投影层。