Python PyTorch模型层权重如何隐式初始化?

Python PyTorch模型层权重如何隐式初始化?,python,deep-learning,pytorch,Python,Deep Learning,Pytorch,我基本上用PyTorch定义了一个带有Conv2D和线性层的模型,并用一个样本数据集对其进行了训练。该模型似乎运行并收敛。但我想知道我没有显式初始化模型层权重(普通或Xavier)。这是否意味着在每次历元训练之前调用model.train()时,默认情况下层权重将随机初始化?如果是这样,如何明确更改初始化类型?初始化类型取决于图层。您可以从方法或文档中进行检查 对于线性层和conv层,都是初始化() 文档中提到了 这些值是从U初始化的(−sqrt(k),sqrt(k)) 对于嵌入层,这是正常的初

我基本上用PyTorch定义了一个带有Conv2D和线性层的模型,并用一个样本数据集对其进行了训练。该模型似乎运行并收敛。但我想知道我没有显式初始化模型层权重(普通或Xavier)。这是否意味着在每次历元训练之前调用model.train()时,默认情况下层权重将随机初始化?如果是这样,如何明确更改初始化类型?

初始化类型取决于图层。您可以从方法或文档中进行检查

对于线性层和conv层,都是初始化()

文档中提到了

这些值是从
U初始化的(−sqrt(k),sqrt(k))

对于嵌入层,这是正常的初始化。(在文件中称为
N(0,1)


您可以更改中提到的初始化类型


这回答了你的问题吗?
conv1 = torch.nn.Conv2d(...)
torch.nn.init.xavier_uniform(conv1.weight)