xavier_uniform_(也叫Glorot uniform initialization) 我觉得是特殊的uniform。
xavier_uniform_ 的等价 uniform_ 初始化代码:

# 计算 xavier uniform 的范围 a
    a = np.sqrt(6.0 / (fan_in + fan_out))
    # 使用与 xavier_uniform_ 等价的范围进行初始化
    torch.nn.init.uniform_(emb.weight, -a, a)

也可以一行代码搞定:

nn.init.xavier_uniform_(emb.weight)

一般的均匀分布初始化:

stdv = 1. / np.sqrt(self.cur_size)
torch.nn.init.uniform_(emb.weight, -stdv, stdv)

正态分布(也叫高斯分布)初始化:

# 使用正态分布初始化权重,均值为0,标准差为stdv
torch.nn.init.normal_(emb.weight, mean=0.0, std=stdv)
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐