adaptive embedding 原理及pytorch代码

本文深入探讨了Adaptive Embedding的原理,它通过为高频词汇分配高维向量,低频词汇分配低维向量,然后使用线性层进行投影,以达到统一维度的效果。结合PyTorch代码示例,详细阐述了这一技术的应用。
摘要由CSDN通过智能技术生成

就是高频词用比如1024或512维,低频词用256或64维。再用Linear层project到相同的维数:

class AdaptiveEmbedding(nn.Module):
    def __init__(self, n_token, d_embed, d_proj, cutoffs, div_val=1, 
                 sample_softmax=False):
        super(AdaptiveEmbedding, self).__init__()

        self.n_token = n_token # 793470
        self.d_embed = d_embed # 1024

        self.cutoffs = cutoffs + [n_token] # [60000, 100000, 640000, 793470]
        self.div_val = div_val # 4
        self.d_proj = d_proj # 1024

        self.emb_scale = d_proj ** 0.5 # 32

        self.cutoff_ends = [0] + self.cutoffs # [0, 60000, 100000, 640000, 793470]

        self.emb_layers = nn.ModuleList()
        self.emb_projs = nn.ParameterList()
        if div_val &#
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FocusOneThread

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值