PyTorch: passing numpy array for weight initialization(PyTorch:传递 numpy 数组以进行权重初始化)
问题描述
我想用 np 数组初始化 RNN 的参数.
I'd like to initialize the parameters of RNN with np arrays.
在下面的例子中,我想将w
传递给rnn
的参数.我知道pytorch提供了很多初始化方法,比如Xavier、uniform等,但是有没有办法通过传递numpy数组来初始化参数?
In the following example, I want to pass w
to the parameters of rnn
. I know pytorch provides many initialization methods like Xavier, uniform, etc., but is there way to initialize the parameters by passing numpy arrays?
推荐答案
首先,让我们注意 nn.RNN
有不止一个权重变量,c.f.文档:
First, let's note that nn.RNN
has more than one weight variable, c.f. the documentation:
变量:
weight_ih_l[k]
–k
层的可学习输入隐藏权重,形状为(hidden_size * input_size)
用于k = 0
.否则,形状是(hidden_size * hidden_size)
weight_hh_l[k]
-k
层的可学习隐藏权重,形状为(hidden_size * hidden_size)
bias_ih_l[k]
–k
层的可学习输入隐藏偏差,形状为(hidden_size)
bias_hh_l[k]
–k
层的可学习隐藏偏差,形状为(hidden_size)
weight_ih_l[k]
– the learnable input-hidden weights of thek
-th layer, of shape(hidden_size * input_size)
fork = 0
. Otherwise, the shape is(hidden_size * hidden_size)
weight_hh_l[k]
– the learnable hidden-hidden weights of thek
-th layer, of shape(hidden_size * hidden_size)
bias_ih_l[k]
– the learnable input-hidden bias of thek
-th layer, of shape(hidden_size)
bias_hh_l[k]
– the learnable hidden-hidden bias of thek
-th layer, of shape(hidden_size)
现在,这些变量中的每一个(参数
实例)是 nn.RNN
实例的属性.您可以通过两种方式访问和编辑它们,如下所示:
Now, each of these variables (Parameter
instances) are attributes of your nn.RNN
instance. You can access them, and edit them, two ways, as show below:
- 解决方案 1:按名称访问所有 RNN
Parameter
属性(rnn.weight_hh_lK
、rnn.weight_ih_lK
等):
- 方案二:通过
rnn.all_weights
列表属性访问所有RNNParameter
属性: - Solution 2: Accessing all the RNN
Parameter
attributes throughrnn.all_weights
list attribute:
这篇关于PyTorch:传递 numpy 数组以进行权重初始化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!