关于sru源码class Model的parameters
class Model(nn.Module):
def __init__(self, words, args):
super(Model, self).__init__()
self.args = args
self.n_d = args.d
self.depth = args.depth
self.drop = nn.Dropout(args.dropout)
self.embedding_layer = EmbeddingLayer(self.n_d, words)
self.n_V = self.embedding_layer.n_V
if args.lstm:
self.rnn = nn.LSTM(self.n_d, self.n_d,
self.depth,
dropout = args.rnn_dropout
)
else:
self.rnn = MF.SRU(self.n_d, self.n_d, self.depth,
dropout = args.rnn_dropout,
rnn_dropout = args.rnn_dropout,
use_tanh = 0
)
self.output_layer = nn.Linear(self.n_d, self.n_V)
# tie weights
self.output_layer.weight = self.embedding_layer.embedding.weight#我运行了一下应该是指每个单词所对应的向量 self.init_weights()
if not args.lstm:
self.rnn.set_bias(args.bias) def init_weights(self):
val_range = (3.0/self.n_d)**0.5
for p in self.parameters():
if p.dim() > 1: # matrix
p.data.uniform_(-val_range, val_range) else:
p.data.zero_() def forward(self, x, hidden):
emb = self.drop(self.embedding_layer(x))
output, hidden = self.rnn(emb, hidden)
output = self.drop(output)
output = output.view(-1, output.size(2))
output = self.output_layer(output)
return output, hidden def init_hidden(self, batch_size):#hidden层的0初始化
weight = next(self.parameters()).data
zeros = Variable(weight.new(self.depth, batch_size, self.n_d).zero_())
if self.args.lstm:
return (zeros, zeros)
else:
return zeros def print_pnorm(self):#p范数
norms = [ "{:.0f}".format(x.norm().data[0]) for x in self.parameters() ]
sys.stdout.write("\tp_norm: {}\n".format(
norms
))
这个问题源于我对Model类中的方法init_weight的理解,一直读不懂这个方法是做什么的,即self.parameters(),这个迭代器送出来的参数是什么呢,我假设这个里面应该是每一层更新的权重,所以我将sru源码的一部分给取了出来,让其输出Model里的parameters,代码如下(sru源码--language model):
#coding:UTF-8
'''
Created on 2017-12-4 @author: lai
'''
import time
import random
import math
import argparse
import numpy as np
import torch
import torch.nn as nn
import torch.nn.functional as F
from torch.autograd import Variable
import sys
import cuda_functional as MF def read_corpus(path, eos="</s>"):
data = [ ]
with open(path) as fin:
for line in fin:
data += line.split() + [ eos ]
return data def create_batches(data_text, map_to_ids, batch_size):
data_ids = map_to_ids(data_text)
N = len(data_ids)
L = ((N-1) // batch_size) * batch_size
x = np.copy(data_ids[:L].reshape(batch_size,-1).T)
y = np.copy(data_ids[1:L+1].reshape(batch_size,-1).T)
x, y = torch.from_numpy(x), torch.from_numpy(y)
x, y = x.contiguous(), y.contiguous() return x,y class EmbeddingLayer(nn.Module):#为语料中每一个单词对应的其相应的词向量
def __init__(self, n_d, words, fix_emb=False):
super(EmbeddingLayer, self).__init__()
word2id = {}
for w in words:
if w not in word2id:
word2id[w] = len(word2id)#把文本映射到数字上。 self.word2id = word2id
self.n_V, self.n_d = len(word2id), n_d#n_V应该是指词库大小,n_d指hidden state size
self.embedding = nn.Embedding(self.n_V, n_d)#赋予每个单词相应的词向量 def forward(self, x):
return self.embedding(x) def map_to_ids(self, text):#映射
return np.asarray([self.word2id[x] for x in text],
dtype='int64'
) class Model(nn.Module):
def __init__(self, words, args):
super(Model, self).__init__()
self.args = args
self.n_d = args.d
self.depth = args.depth
self.drop = nn.Dropout(args.dropout)
self.embedding_layer = EmbeddingLayer(self.n_d, words)
self.n_V = self.embedding_layer.n_V
if args.lstm:
self.rnn = nn.LSTM(self.n_d, self.n_d,
self.depth,
dropout = args.rnn_dropout
)
else:
self.rnn = MF.SRU(self.n_d, self.n_d, self.depth,
dropout = args.rnn_dropout,
rnn_dropout = args.rnn_dropout,
use_tanh = 0
) self.output_layer = nn.Linear(self.n_d, self.n_V)
# tie weights
self.output_layer.weight = self.embedding_layer.embedding.weight#我运行了一下应该是指每个单词所对应的向量 self.init_weights() if not args.lstm:
self.rnn.set_bias(args.bias) def init_weights(self):
val_range = (3.0/self.n_d)**0.5
for p in self.parameters():
if p.dim() > 1: # matrix
p.data.uniform_(-val_range, val_range)
print('222222',p.data) else:
p.data.zero_()
print('0000',p.data) if __name__ == "__main__":
argparser = argparse.ArgumentParser(sys.argv[0], conflict_handler='resolve')
argparser.add_argument("--lstm", action="store_true")
argparser.add_argument("--train", type=str, required=True, help="training file") argparser.add_argument("--batch_size", "--batch", type=int, default=32)
argparser.add_argument("--unroll_size", type=int, default=35)
argparser.add_argument("--max_epoch", type=int, default=300)
argparser.add_argument("--d", type=int, default=910)
argparser.add_argument("--dropout", type=float, default=0.7,
help="dropout of word embeddings and softmax output"
)
argparser.add_argument("--rnn_dropout", type=float, default=0.2,
help="dropout of RNN layers"
)
argparser.add_argument("--bias", type=float, default=-3,
help="intial bias of highway gates",
)
argparser.add_argument("--depth", type=int, default=6)
argparser.add_argument("--lr", type=float, default=1.0)
argparser.add_argument("--lr_decay", type=float, default=0.98)
argparser.add_argument("--lr_decay_epoch", type=int, default=175)
argparser.add_argument("--weight_decay", type=float, default=1e-5)
argparser.add_argument("--clip_grad", type=float, default=5) args = argparser.parse_args()
print(args) train = read_corpus(args.train)
model = Model(train, args)
model.cuda()
map_to_ids = model.embedding_layer.map_to_ids
train = create_batches(train, map_to_ids, args.batch_size)
print('111',model.parameters())
再终端中输入运行命令:
python 2.py --train train.txt
输出:
Namespace(batch_size=32, bias=-3, clip_grad=5, d=910, depth=6, dropout=0.7, lr=1.0, lr_decay=0.98, lr_decay_epoch=175, lstm=False, max_epoch=300, rnn_dropout=0.2, train='train.txt', unroll_size=35, weight_decay=1e-05)
222222
4.8794e-02 5.0702e-02 -3.2630e-02 ... -5.3750e-02 4.2253e-02 1.6446e-02
-5.1652e-02 -2.3051e-02 4.3890e-02 ... 1.8805e-02 1.6605e-02 2.6666e-02
2.5273e-02 -5.1426e-03 5.3130e-02 ... -4.8786e-02 4.0186e-02 -4.3724e-02
... ⋱ ...
-3.3133e-02 3.3400e-02 3.2185e-02 ... -5.0593e-02 -2.3048e-02 -2.1572e-02
2.9908e-03 -2.1938e-02 -2.1926e-02 ... -4.5163e-02 -4.1678e-02 -5.2639e-02
-2.2036e-02 2.3908e-04 1.9383e-02 ... -1.0341e-02 4.7491e-02 -5.0599e-02
[torch.FloatTensor of size 10000x910] 222222
-6.1627e-03 1.9962e-02 5.6098e-02 ... 5.2324e-02 -1.0912e-02 1.7969e-02
1.1683e-02 1.4485e-02 3.7155e-02 ... -4.6458e-02 -2.8750e-02 -1.7442e-02
5.3697e-02 3.4534e-02 -2.5292e-02 ... -3.9264e-02 -2.8864e-02 2.3790e-02
... ⋱ ...
7.6450e-03 -2.1589e-02 -7.6684e-03 ... -5.6521e-02 -5.5103e-02 -3.8065e-02
4.7252e-02 5.7209e-02 -4.9279e-02 ... -2.0944e-02 -4.3891e-03 1.8820e-02
2.7026e-02 3.5590e-02 1.3660e-02 ... -1.6219e-02 -2.1856e-02 3.2678e-02
[torch.FloatTensor of size 910x2730] 0000
0
0
0
⋮
0
0
0
[torch.FloatTensor of size 1820] 222222
-1.2439e-02 -5.5866e-02 -3.5799e-02 ... -4.9976e-02 7.3134e-03 4.5684e-03
-4.6130e-02 -4.7773e-02 -4.3640e-02 ... -3.2027e-02 -8.8562e-03 4.3218e-02
-3.5260e-02 3.1456e-02 1.3324e-02 ... 3.4487e-02 -7.7102e-03 2.9963e-02
... ⋱ ...
-1.6921e-02 -1.5771e-02 5.3847e-02 ... 4.6351e-02 4.9333e-02 -1.1978e-02
-1.8770e-02 -1.5817e-02 -7.6655e-05 ... -8.4615e-03 1.4490e-02 -5.6743e-02
4.1060e-03 -2.4452e-02 2.5512e-02 ... -2.3961e-02 -5.2609e-02 3.3445e-02
[torch.FloatTensor of size 910x2730] 0000
0
0
0
⋮
0
0
0
[torch.FloatTensor of size 1820] 222222
-3.6535e-02 -2.4697e-02 3.2514e-02 ... 3.0889e-02 -4.7916e-03 9.5873e-03
4.5222e-02 -5.7333e-02 5.4079e-02 ... 1.7790e-02 3.5510e-02 -1.2171e-02
7.5279e-03 -2.7133e-02 -5.1036e-02 ... 5.6305e-02 -2.0042e-02 -2.8884e-02
... ⋱ ...
-4.5409e-02 -1.6207e-02 3.4128e-02 ... -5.6980e-02 1.6646e-02 -2.0662e-02
2.8941e-02 3.1405e-02 5.7100e-02 ... 3.9499e-03 9.5197e-03 -2.3475e-02
-5.1939e-02 -9.6567e-03 3.1139e-02 ... -1.0642e-02 -4.8837e-02 2.7009e-02
[torch.FloatTensor of size 910x2730] 0000
0
0
0
⋮
0
0
0
[torch.FloatTensor of size 1820] 222222
1.4545e-02 -1.7484e-02 -1.3450e-02 ... 4.9990e-02 3.6013e-03 -2.5272e-02
4.6915e-02 2.4484e-02 -2.6583e-02 ... 3.4737e-02 3.9499e-02 -2.8632e-02
1.8722e-02 -2.1864e-02 2.4649e-02 ... 4.9049e-02 4.8219e-02 3.7317e-02
... ⋱ ...
-2.6708e-02 4.2176e-02 3.8287e-02 ... 3.3608e-02 -2.7229e-02 9.4752e-03
1.2404e-02 1.7356e-02 7.0494e-03 ... 1.5802e-02 -7.5168e-03 -4.1576e-02
-3.1050e-02 3.5632e-02 2.2318e-03 ... -1.9828e-02 4.4247e-02 -2.3669e-02
[torch.FloatTensor of size 910x2730] 0000
0
0
0
⋮
0
0
0
[torch.FloatTensor of size 1820] 222222
-8.6860e-03 2.4917e-02 -4.8584e-02 ... -1.1277e-02 -1.2668e-02 -1.6445e-02
-2.5161e-02 -4.4705e-03 -4.5265e-02 ... -3.1264e-02 -4.2164e-02 -2.4916e-02
-1.8575e-02 -1.8767e-02 -5.2647e-02 ... 5.4461e-02 -5.0726e-02 -3.1518e-03
... ⋱ ...
-3.1745e-02 -3.8159e-02 1.7577e-02 ... -5.6739e-02 1.9196e-02 1.6574e-02
-5.5951e-02 -6.2410e-03 -5.6714e-02 ... 2.8419e-02 5.7141e-02 2.3431e-02
-1.7646e-02 8.7587e-04 -2.3462e-02 ... -4.9807e-04 4.2565e-02 -4.5738e-02
[torch.FloatTensor of size 910x2730] 0000
0
0
0
⋮
0
0
0
[torch.FloatTensor of size 1820] 222222
-8.5008e-03 4.9589e-02 4.8005e-02 ... 5.2643e-03 1.4385e-02 -1.8161e-02
3.0520e-03 5.5756e-02 3.9487e-02 ... -2.9614e-03 -5.1740e-02 -4.8080e-02
1.8335e-02 -5.5416e-02 -1.0836e-02 ... 2.8635e-02 -8.8250e-03 -1.4533e-02
... ⋱ ...
5.2809e-02 -3.2417e-02 3.9305e-02 ... 2.2464e-02 -4.7438e-02 5.1094e-02
-5.5829e-02 -4.9564e-02 1.3892e-02 ... -3.4778e-02 4.3359e-02 8.6556e-03
-2.1687e-03 -3.7360e-03 4.2217e-03 ... 3.9019e-02 -4.2598e-02 1.6985e-02
[torch.FloatTensor of size 910x2730] 0000
0
0
0
⋮
0
0
0
[torch.FloatTensor of size 1820] 0000
0
0
0
⋮
0
0
0
[torch.FloatTensor of size 10000] 111 <generator object Module.parameters at 0x7f6fe8cc3eb8>
下面是方法init_weight的代码:
def init_weights(self):
val_range = (3.0/self.n_d)**0.5
for p in self.parameters():
if p.dim() > 1: # matrix
p.data.uniform_(-val_range, val_range)
print('222222',p.data) else:
p.data.zero_()
print('0000',p.data)
上面运行输出的结果就是p.data.uniform_(-val_range, val_range)以及p.data.zero_()的值,这里的参数我猜测一个是sru中的权重(w)另一个是偏置(b),但是这样的话就有一个疑问,这里输出的第一个大小为10000*910的tensor是词向量化得到的10000个单词的词向量,而最后一个大小为10000的tensor是最后线性分类全连接层的参数,所以剩下有六对的w和b,但是这样的话就有一个疑问,因为循环神经网络是时间共享的,所以应该只有一对才对,为了解决这个疑问,
我将用lstm做mnist分类的代码拿了出来,并将它的model的参数打印了出来,代码和结果如下所示
代码:
import torch
from torch import nn
from torch.autograd import Variable
import torchvision.datasets as dsets
import torchvision.transforms as transforms
import matplotlib.pyplot as plt torch.manual_seed(1) # reproducible # Hyper Parameters
EPOCH = 1 # train the training data n times, to save time, we just train 1 epoch
BATCH_SIZE = 64
TIME_STEP = 28 # rnn time step / image height
INPUT_SIZE = 28 # rnn input size / image width
LR = 0.01 # learning rate
DOWNLOAD_MNIST = True # set to True if haven't download the data # Mnist digital dataset
train_data = dsets.MNIST(
root='./mnist/',
train=True, # this is training data
transform=transforms.ToTensor(), # Converts a PIL.Image or numpy.ndarray to
# torch.FloatTensor of shape (C x H x W) and normalize in the range [0.0, 1.0]
download=DOWNLOAD_MNIST, # download it if you don't have it
) # plot one example
print(train_data.train_data.size()) # (60000, 28, 28)
print(train_data.train_labels.size()) # (60000)
plt.imshow(train_data.train_data[0].numpy(), cmap='gray')
plt.title('%i' % train_data.train_labels[0])
plt.show() # Data Loader for easy mini-batch return in training
train_loader = torch.utils.data.DataLoader(dataset=train_data, batch_size=BATCH_SIZE, shuffle=True) # convert test data into Variable, pick 2000 samples to speed up testing
test_data = dsets.MNIST(root='./mnist/', train=False, transform=transforms.ToTensor())
test_x = Variable(test_data.test_data, volatile=True).type(torch.FloatTensor)[:2000]/255. # shape (2000, 28, 28) value in range(0,1)
test_y = test_data.test_labels.numpy().squeeze()[:2000] # covert to numpy array class RNN(nn.Module):
def __init__(self):
super(RNN, self).__init__() self.rnn = nn.LSTM( # if use nn.RNN(), it hardly learns
input_size=INPUT_SIZE,
hidden_size=64, # rnn hidden unit
num_layers=2, # number of rnn layer
batch_first=True, # input & output will has batch size as 1s dimension. e.g. (batch, time_step, input_size)
) self.out = nn.Linear(64, 10) def forward(self, x):
# x shape (batch, time_step, input_size)
# r_out shape (batch, time_step, output_size)
# h_n shape (n_layers, batch, hidden_size)
# h_c shape (n_layers, batch, hidden_size)
r_out, (h_n, h_c) = self.rnn(x, None) # None represents zero initial hidden state # choose r_out at the last time step
out = self.out(r_out[:, -1, :])
return out
def init_weights(self):
for p in self.parameters():
print('PPP',p.data) rnn = RNN()
print(rnn.init_weights())
输出:
torch.Size([60000, 28, 28])
torch.Size([60000])
PPP
-2.0745e-02 1.2430e-01 5.5081e-02 ... -1.4137e-02 9.4529e-02 -6.7606e-02
-1.1815e-01 8.6035e-03 4.2617e-02 ... 8.2401e-02 -1.1524e-01 -5.6738e-02
-8.2542e-02 -1.1019e-01 9.4536e-02 ... 4.0159e-02 6.2041e-02 -5.0376e-02
... ⋱ ...
1.0238e-01 5.3194e-02 5.3342e-02 ... -1.5019e-02 -1.0299e-01 2.3091e-02
4.5909e-02 -5.0352e-02 -2.5497e-02 ... 1.1765e-01 -1.1448e-01 -3.1609e-02
3.1011e-06 -1.0142e-01 1.2229e-01 ... 3.1813e-02 7.6921e-02 4.4233e-03
[torch.FloatTensor of size 256x28] PPP
-2.4325e-03 1.1478e-02 9.3458e-02 ... -1.1657e-01 -3.6968e-03 1.2013e-01
1.2265e-01 -2.3560e-02 -5.3951e-02 ... 4.1457e-02 -6.7170e-02 6.1414e-02
1.2334e-01 -6.3188e-02 3.9050e-02 ... 8.4631e-02 4.0930e-04 8.3604e-03
... ⋱ ...
5.6417e-02 3.7298e-02 5.7616e-02 ... 2.9125e-02 -6.6484e-02 -4.2838e-02
-6.0267e-02 8.6004e-02 4.4727e-02 ... -4.9643e-02 -3.5065e-03 -2.5401e-02
8.1001e-02 5.8518e-02 -9.0292e-02 ... -1.5258e-02 5.6519e-02 6.1370e-02
[torch.FloatTensor of size 256x64] PPP
0.0282
-0.0362
0.0864
0.0677
0.0012
0.0699
0.0850
-0.0927
0.0074
-0.0183
0.0679
0.1177
0.0255
0.1012
0.1248
-0.0625
0.0023
-0.0255
0.0870
-0.0900
0.1057
0.1233
0.0982
0.0475
-0.0387
-0.0267
-0.0964
-0.0153
0.0004
-0.0410
0.0771
-0.0399
0.0746
-0.0210
-0.0396
0.1108
0.0347
0.0263
0.0244
0.1113
-0.1071
0.1036
0.0478
0.0217
0.0314
0.0138
-0.1113
-0.1192
-0.0286
-0.0674
-0.0165
-0.0097
0.0663
-0.1072
0.0048
-0.1062
0.0677
-0.0028
0.0809
0.0119
0.1111
0.0363
0.0877
0.0189
0.0396
0.0358
-0.0257
0.0966
0.0951
-0.1179
-0.0906
-0.0619
-0.0229
-0.1193
0.0254
0.0110
0.0400
0.0655
0.1200
-0.0940
0.0728
0.0882
-0.1049
0.0939
0.0041
-0.0711
0.0914
-0.0461
0.0109
-0.0800
-0.0766
-0.0265
-0.0381
-0.0433
0.0193
0.0812
0.0163
0.0358
-0.0053
-0.0900
-0.0037
0.1009
0.1084
0.1006
-0.1237
-0.1227
0.0808
-0.0083
0.0376
0.0424
-0.1121
0.0379
0.0457
0.0443
-0.0528
0.0220
-0.0690
0.0620
-0.0660
-0.1124
0.1238
0.1188
0.0121
0.0574
0.1246
0.1000
-0.1034
0.0387
0.0307
-0.0669
-0.0619
-0.0819
0.0566
0.0150
0.0271
-0.0843
-0.0209
-0.0957
-0.1174
0.1031
-0.1250
0.0180
-0.0449
0.0920
0.1114
0.0604
-0.0987
0.0378
-0.0088
-0.0471
0.0549
-0.1234
0.1069
-0.0567
0.0241
-0.0163
0.0585
0.0199
-0.0188
0.0265
-0.0673
0.0697
-0.1224
0.1042
-0.0697
0.0695
0.0575
-0.1156
0.0663
0.1177
0.0562
-0.0417
-0.0054
0.0045
0.0614
-0.0089
0.0203
-0.1049
-0.1201
-0.0638
0.0728
0.0208
-0.1018
-0.0363
0.1128
-0.0524
0.0992
0.0937
-0.0378
-0.0195
-0.0188
-0.0483
0.0779
-0.0754
0.0148
-0.0060
0.0743
-0.0820
-0.0673
-0.1153
-0.1039
0.1002
0.1217
-0.0797
0.0217
0.1129
0.0951
0.0616
-0.1183
-0.0252
-0.0304
0.1234
-0.0538
0.0367
0.0407
0.1176
-0.0902
-0.0805
0.0111
-0.0863
-0.1222
-0.0678
-0.0044
-0.1218
0.0300
0.0739
-0.1152
0.1235
-0.0317
0.0685
0.0598
0.1120
-0.0902
0.1143
0.0801
0.0399
0.0360
-0.1152
-0.1007
-0.1126
0.0860
-0.0592
0.0955
0.0719
-0.1118
0.0839
-0.1176
0.0537
0.0078
0.1173
0.0129
-0.0301
0.0105
0.0961
0.1167
-0.0015
[torch.FloatTensor of size 256] PPP
-0.0896
-0.0394
0.0575
0.0898
-0.0369
-0.0604
-0.1172
-0.0549
-0.0869
0.0679
0.0554
0.0323
0.1063
0.0728
0.0056
-0.0021
-0.0868
-0.0736
-0.1204
-0.0460
-0.0145
-0.0992
0.0601
0.0738
0.0064
-0.0570
-0.0947
0.0027
0.0669
0.0408
-0.0228
0.0554
0.0698
0.0994
0.0893
0.1066
0.1231
-0.0688
0.0152
-0.0445
-0.0341
-0.0329
0.1052
-0.0456
-0.0409
0.0484
0.0768
0.0061
0.0429
-0.0186
0.0379
-0.0657
-0.0839
0.0442
-0.0539
-0.0483
0.0572
-0.0753
-0.0779
-0.1166
0.0279
-0.0066
0.0854
0.0428
0.0903
-0.0658
0.1244
-0.0133
0.0524
0.0666
-0.0662
0.1046
-0.0649
0.1223
0.0819
-0.0074
0.0782
-0.0263
-0.0057
-0.0470
0.1029
0.1156
0.0884
0.0517
0.0135
0.0975
0.0406
0.0615
-0.1222
0.0127
0.0202
0.0154
-0.0490
0.0423
-0.0904
0.0034
0.0662
-0.0574
0.1162
-0.0481
-0.0147
0.0243
0.0805
0.0352
0.1058
0.0748
-0.0551
-0.0796
-0.1161
-0.0610
-0.0102
0.0143
0.0791
0.0752
0.0099
0.1133
-0.0766
0.0520
0.0810
0.1068
-0.0541
0.0390
0.1153
0.0095
0.0118
-0.0185
-0.1179
0.0452
0.0302
-0.0776
0.0909
-0.0086
0.0527
0.0133
0.1130
-0.0909
0.1160
0.1218
0.0347
-0.0277
0.0401
0.1104
-0.0635
-0.0656
-0.0928
-0.0365
0.0579
0.1197
-0.0098
-0.0489
-0.1086
0.0579
0.0282
-0.0649
0.0929
0.0039
0.0507
0.1174
0.0951
-0.0533
0.0641
0.0185
0.0011
-0.0621
0.0776
-0.0298
-0.1170
0.0693
0.0740
-0.0802
0.0799
-0.0972
-0.0010
0.0589
-0.0510
-0.0292
-0.0500
0.0838
-0.0176
0.0527
-0.0037
0.0092
0.0478
0.0512
-0.1239
0.0042
-0.0440
-0.0278
-0.0434
0.0052
0.0466
-0.0746
-0.1143
-0.0694
0.0201
0.0768
-0.0924
0.0589
-0.0591
-0.1036
0.0529
0.0197
-0.1067
-0.0165
-0.0370
0.0374
-0.0818
-0.0040
0.0659
0.1040
-0.0619
-0.1208
-0.1066
0.1142
0.0920
0.0833
0.0214
0.1020
-0.0266
-0.0508
0.0550
-0.0452
-0.0696
0.0879
0.0680
0.1009
-0.0232
0.0159
-0.1064
-0.0839
0.1089
-0.0473
-0.0158
0.0185
-0.1224
0.1131
0.1089
0.1030
-0.0451
-0.0555
-0.0767
-0.0546
0.0403
-0.1247
-0.0622
-0.0063
-0.0933
0.0445
0.0727
0.0664
-0.0864
-0.0978
0.0016
-0.1126
0.0716
0.0169
[torch.FloatTensor of size 256] PPP
-6.6907e-02 -1.1469e-01 6.4129e-02 ... 3.8876e-02 -4.4813e-02 4.7873e-02
1.0064e-01 -1.2048e-01 7.3207e-02 ... -1.2326e-02 -1.1054e-01 -1.1371e-01
-9.9514e-02 -4.0268e-04 7.1349e-03 ... -1.0321e-01 -1.2389e-01 -4.2875e-03
... ⋱ ...
6.1065e-02 -5.2070e-02 -7.4900e-02 ... 3.0900e-02 5.6731e-02 1.0931e-01
-4.2554e-03 1.2137e-01 -1.0776e-02 ... -9.8254e-03 -3.8701e-02 -2.6478e-02
-6.6246e-02 4.3564e-02 4.7540e-02 ... -8.6700e-02 -6.5478e-03 -7.8267e-02
[torch.FloatTensor of size 256x64] PPP
-9.3750e-02 -8.5315e-02 -3.2224e-02 ... 4.6174e-02 1.2341e-01 7.0605e-02
-1.0107e-01 -1.1443e-01 -1.2133e-01 ... -1.1138e-01 7.7709e-02 4.1309e-02
-1.0675e-01 -9.5286e-02 8.1566e-02 ... -5.4656e-02 -2.9437e-02 -3.4233e-02
... ⋱ ...
1.0409e-01 6.9673e-02 6.2664e-02 ... -3.2450e-02 -7.9281e-02 1.1497e-01
-2.8081e-02 -1.2337e-01 6.9056e-02 ... -1.0816e-01 -8.9076e-02 5.8901e-02
6.1354e-02 -2.9104e-02 -5.5389e-02 ... -3.9486e-02 -2.9318e-02 1.1121e-01
[torch.FloatTensor of size 256x64] PPP
-0.0661
0.0039
0.0343
-0.0428
-0.0931
0.0150
0.0667
-0.0503
0.1009
0.0786
0.0435
-0.0952
0.0759
-0.0155
-0.0651
-0.0916
0.1066
0.0204
-0.0731
0.1241
0.0861
-0.0129
-0.0326
-0.0626
-0.1194
0.0683
-0.0699
-0.0822
0.0856
-0.0142
-0.0683
-0.1223
-0.0443
-0.1215
0.0422
0.0083
0.0220
-0.1037
0.0534
0.0914
-0.0479
-0.0273
0.0670
-0.0777
0.0030
0.0343
-0.1053
-0.0880
-0.0184
0.0800
-0.0517
-0.0596
-0.0919
0.0129
0.0592
0.0903
0.0144
-0.0522
-0.0801
-0.0489
0.0093
-0.0173
-0.0433
-0.0887
0.1231
-0.0524
-0.0295
-0.0432
-0.0109
-0.0625
0.0006
-0.0658
0.0526
-0.0297
0.0765
-0.0805
0.0268
-0.0250
-0.0652
-0.1201
-0.1215
-0.0732
0.0856
-0.0101
-0.1052
-0.0456
-0.0750
-0.1149
0.0586
0.0594
0.1186
0.0742
0.0826
0.0612
0.0535
0.0827
0.1247
-0.0917
0.0162
0.0731
-0.0980
-0.0508
0.1217
-0.0242
0.0939
0.0172
0.1151
0.0706
-0.1080
-0.1144
-0.0062
0.1227
0.0040
0.0451
0.0370
0.0963
-0.0548
0.0073
0.0590
-0.0860
0.0873
0.0123
0.0907
-0.0206
0.0959
0.1026
0.0361
0.0632
-0.0422
0.0934
-0.1055
-0.1022
0.0365
-0.0169
-0.0298
0.0096
0.0932
-0.0130
-0.0151
0.0693
-0.0823
-0.0176
0.0714
-0.0319
0.0251
0.0878
-0.0841
-0.0804
0.0915
0.0282
0.0470
-0.0592
-0.0913
-0.1234
0.0315
0.0182
-0.0110
0.0275
-0.0983
0.0250
-0.0442
-0.0113
-0.0569
0.0902
0.0690
0.0543
-0.0904
0.0373
0.0728
-0.1175
-0.0886
-0.0702
-0.0567
-0.0740
0.1204
-0.0247
-0.0659
0.0075
0.0327
0.0215
0.0539
-0.1142
-0.0042
0.0156
-0.1102
0.0036
0.0363
-0.0509
-0.0219
-0.0764
0.1240
-0.0074
0.0395
0.0058
-0.0012
0.0614
0.0985
0.0915
-0.0060
-0.0268
0.1034
0.1116
0.0221
0.1064
-0.0271
0.0554
0.0099
-0.0627
-0.0422
0.0102
-0.0310
0.0050
-0.0806
0.1235
-0.0786
-0.1168
-0.1148
0.0717
-0.1048
0.0509
0.0219
0.0902
-0.0821
-0.0005
0.0549
-0.0563
-0.0460
-0.0904
-0.0209
0.0030
-0.1225
-0.1071
-0.0584
-0.0711
-0.0749
-0.1088
-0.0597
-0.0829
0.0858
-0.0987
-0.0564
-0.0063
0.0432
-0.1095
-0.0563
0.0691
-0.0815
-0.0858
0.1200
0.0459
0.0008
0.0818
-0.0996
-0.0737
-0.0613
-0.0190
[torch.FloatTensor of size 256] PPP
0.0130
-0.0655
0.0321
-0.0441
0.0407
0.0434
-0.0885
0.1136
-0.0390
0.0391
-0.0185
0.1143
0.0910
0.0787
0.1237
0.0194
0.1165
0.0155
-0.0504
0.0776
-0.0269
0.0218
-0.0945
-0.0426
0.0947
-0.0057
0.1128
0.0760
-0.0732
-0.0685
-0.0252
0.0184
0.0505
0.0759
0.0615
-0.0737
0.0955
-0.0121
-0.0377
-0.0322
-0.1096
0.0560
-0.0542
0.0561
0.0817
-0.1046
-0.1038
0.0840
0.0799
-0.0957
-0.0016
0.0730
0.0618
0.0825
0.0690
-0.0078
-0.1246
0.0268
-0.0774
0.0724
-0.0090
0.0527
0.0685
0.0065
0.1016
0.0774
-0.0896
-0.1083
-0.0638
0.0117
0.0420
-0.0266
-0.1220
0.0789
0.1214
-0.1015
-0.0909
-0.0033
0.0222
0.0632
-0.0497
0.1060
-0.0510
-0.0921
0.0712
0.0647
0.0967
0.0060
-0.0525
0.1039
0.0658
-0.0608
0.0169
0.0928
-0.0088
-0.0515
0.1121
0.0269
-0.0597
0.0628
-0.0472
-0.1149
0.0278
-0.0011
-0.1209
-0.0417
-0.0575
-0.1082
-0.0024
-0.0415
0.0768
-0.0113
-0.0656
-0.1064
0.0836
-0.0422
0.0870
-0.1213
-0.1221
-0.0013
-0.0250
0.0287
0.0259
0.1054
-0.0570
0.0618
-0.0923
-0.0611
0.0055
0.0844
0.0405
0.1082
-0.0302
-0.1106
-0.0838
0.0420
0.0394
0.1039
0.0928
-0.1081
0.1234
-0.0382
-0.0146
0.0087
-0.1011
-0.0149
0.0597
0.0590
-0.0194
-0.0813
-0.0690
0.0264
-0.1082
-0.0783
0.0951
0.1159
-0.0691
0.0259
-0.0214
0.1139
-0.0472
0.0963
0.0718
0.1083
-0.1242
0.0716
-0.0109
0.0272
0.1071
-0.1237
0.0692
-0.0022
0.0654
0.1097
0.0385
0.0353
-0.0804
0.0428
0.0702
-0.1195
0.0169
-0.0206
0.1065
0.0441
0.0651
-0.0746
0.0194
-0.0477
0.0950
-0.0569
-0.0991
0.0898
-0.0652
0.0683
0.1220
-0.0222
-0.0751
0.0174
0.0994
0.0596
-0.1138
0.0801
-0.0527
0.0947
0.0996
0.0951
-0.0851
-0.0969
-0.0364
-0.0450
-0.0039
0.0870
-0.1237
-0.1074
0.0992
0.0800
-0.0711
0.0041
0.0270
-0.0486
-0.0652
-0.0523
-0.0862
-0.0883
-0.1182
-0.0350
-0.1132
0.0665
-0.0439
0.0392
0.0400
0.0344
-0.1176
-0.0682
-0.1236
0.0208
-0.1139
0.0633
-0.1106
0.0126
0.0185
-0.0219
0.1117
0.0977
0.0860
0.0608
0.0103
0.0771
-0.0751
0.0909
0.0020
-0.0930
0.0830
-0.0403
-0.0516
0.0852
[torch.FloatTensor of size 256] PPP Columns 0 to 9
0.0991 0.1218 -0.0816 0.0220 0.1029 0.0342 -0.0448 -0.0178 -0.0067 0.0853
0.1030 -0.0817 0.0258 0.0233 0.0885 -0.1076 0.0526 0.0402 0.0480 -0.1025
0.0224 -0.1067 0.0508 -0.0831 -0.0963 0.1152 -0.0994 -0.0305 -0.1041 -0.0282
-0.0365 -0.0857 -0.0107 0.0929 -0.0940 -0.0774 -0.0135 -0.0096 0.1087 0.1086
0.0340 -0.0464 -0.1135 0.0084 -0.0820 -0.0957 0.0070 0.0113 0.0882 0.1237
0.0658 -0.1047 -0.1228 -0.0985 0.0482 0.1177 -0.0759 -0.0205 0.0492 -0.0698
-0.0384 0.0334 0.0953 0.1019 -0.1207 -0.0936 -0.0745 -0.0863 0.0533 0.0637
-0.0595 0.0473 -0.0147 0.0062 -0.0191 -0.1011 -0.0289 -0.0175 -0.0966 -0.0236
0.0033 0.0701 0.0546 0.0245 -0.0388 -0.0780 0.1232 0.0122 -0.0397 -0.0912
-0.1052 -0.0875 -0.0197 0.0015 0.1021 -0.0661 -0.0445 0.0846 -0.0606 -0.0982 Columns 10 to 19
0.1033 -0.0640 0.0401 0.0702 -0.0747 -0.0222 -0.0202 -0.1072 0.0767 0.0377
0.0887 0.1194 0.1097 0.0148 -0.0138 0.0688 0.0077 0.1012 0.0860 0.0938
-0.0802 -0.0107 0.1062 -0.0412 -0.0003 -0.0302 0.0076 -0.0905 0.0395 0.0955
-0.0888 -0.1035 0.0805 0.0047 -0.0107 0.1076 0.0193 -0.0615 -0.0366 0.0952
-0.0148 0.1075 -0.0537 -0.0461 -0.0562 0.0190 -0.1205 -0.0974 -0.1083 -0.0353
-0.0527 0.1049 -0.0480 0.0007 0.0755 -0.0399 0.0567 0.0688 0.0719 -0.0474
0.0052 -0.0320 0.0903 -0.0895 0.0861 -0.1100 -0.0788 -0.0094 -0.0595 0.0111
0.0535 -0.0790 -0.0736 -0.0512 0.0414 0.0372 -0.0638 -0.1041 -0.0484 -0.0755
0.1205 -0.0672 0.1016 0.0827 0.0972 -0.0551 -0.0410 -0.0551 -0.1206 -0.0395
-0.0214 0.0026 -0.0185 0.0001 0.0064 0.0982 0.0946 0.0116 -0.0024 -0.1074 Columns 20 to 29
0.0014 -0.0417 0.0009 0.0854 0.0269 -0.0232 0.0012 0.0069 0.1210 -0.0919
-0.0958 -0.1185 -0.1184 0.0191 0.0536 -0.0257 0.0315 -0.0092 0.1055 -0.1166
0.0894 -0.0709 0.0922 -0.0424 0.0420 -0.0950 -0.0118 -0.0910 -0.1123 0.0984
-0.0553 0.0978 0.0158 -0.0619 0.0885 -0.0976 0.1039 -0.0054 -0.0926 0.0064
0.1147 -0.0009 -0.0362 -0.0879 -0.0277 -0.1015 -0.1144 -0.0243 -0.1179 0.0933
-0.0904 -0.1183 0.0636 -0.0606 0.0001 -0.0374 -0.0823 -0.0881 -0.0811 -0.0672
0.0241 -0.0959 0.0423 -0.0978 -0.0285 0.0123 0.0488 0.0487 0.0176 0.0173
0.1008 0.0326 -0.0710 -0.1112 -0.0287 -0.0300 -0.0440 -0.0343 -0.0450 -0.1118
0.1113 -0.0555 0.0969 -0.0204 -0.0316 -0.0028 -0.0019 0.0290 -0.0231 0.0070
-0.0039 -0.0672 -0.0438 0.0368 0.0553 -0.0499 0.0267 -0.0649 0.0019 0.0879 Columns 30 to 39
0.1117 -0.0552 0.0605 0.0743 0.0197 -0.0904 0.0005 0.0353 -0.0751 -0.0130
0.0750 -0.1095 0.0277 0.1156 0.0949 -0.0796 0.1044 0.0500 0.1119 0.0033
-0.1121 0.0314 0.0501 0.0035 -0.1149 0.0623 0.0100 -0.0163 0.1058 0.0865
0.0800 -0.0530 -0.0353 0.0779 0.1238 -0.0200 -0.0272 0.0986 0.0196 -0.0383
-0.0122 -0.1203 0.0466 -0.0569 -0.1043 -0.0704 0.1004 0.0055 0.0543 -0.0131
-0.0977 -0.0751 0.0328 0.0662 -0.0501 0.1024 0.1224 -0.0401 0.0107 0.0433
0.0638 -0.1180 -0.0250 -0.1239 0.0566 0.0193 -0.0407 -0.0628 0.0466 -0.0568
0.0265 -0.1144 -0.0753 0.1054 -0.0994 0.1162 0.0292 0.0838 -0.0420 -0.0506
-0.0177 0.0262 -0.0189 -0.0819 -0.0847 -0.0090 -0.0930 0.1133 0.0611 -0.0546
0.0987 -0.0040 -0.0567 -0.0284 0.0951 -0.0739 0.0193 -0.0317 -0.0896 0.0663 Columns 40 to 49
0.0285 0.0341 0.1245 -0.0614 -0.0078 -0.0584 -0.0105 0.0094 0.0422 -0.0227
0.0398 0.1004 -0.0884 0.0318 -0.0911 -0.1213 -0.0907 -0.0738 -0.0523 -0.0317
-0.1230 0.0846 -0.0740 -0.0878 0.0250 0.0375 -0.0831 0.1182 -0.0754 -0.0871
-0.0256 0.0675 -0.0249 0.0952 -0.1188 -0.0273 0.0934 0.1209 0.0765 0.0063
0.0708 0.0393 0.0189 0.0350 -0.0329 0.1113 0.0110 -0.0083 -0.1152 -0.0735
0.0585 0.0925 0.0616 0.0478 0.0957 0.1038 0.0545 -0.0227 -0.1126 0.0958
0.1080 -0.1215 0.0274 0.0803 -0.1214 0.0364 0.0985 -0.0505 0.0941 -0.0675
-0.0153 0.1246 -0.0902 0.0092 0.1193 -0.1020 -0.0869 0.0396 0.1078 0.0155
0.1243 0.0651 -0.0685 -0.0275 -0.0058 0.0416 -0.0851 0.0398 0.0317 -0.0656
-0.0128 0.0311 -0.0837 -0.0885 -0.0965 0.0931 -0.0942 -0.0342 0.0851 0.0435 Columns 50 to 59
-0.0706 0.0740 0.0403 0.0486 0.0804 0.1016 0.0948 0.0042 -0.0204 -0.1151
0.1095 0.0921 -0.1028 0.0282 0.0878 0.0996 0.1205 -0.0796 -0.0634 -0.1172
0.1047 -0.0863 0.0562 0.0295 0.0177 -0.0250 0.0261 0.1133 0.0844 0.0866
-0.0407 0.0486 -0.1202 -0.1043 0.0989 0.0932 0.0133 0.0651 -0.1158 -0.0456
-0.1219 0.0920 0.0697 0.0927 0.1020 0.0391 0.0309 0.0199 0.0844 0.0428
-0.0501 0.0589 0.0111 -0.0826 0.0056 -0.0369 -0.0911 0.1175 -0.0292 0.0318
0.0445 0.1137 0.1123 -0.0716 0.0885 -0.0383 0.0276 0.0571 0.0976 0.0298
-0.1082 -0.1132 -0.0977 -0.0630 0.1066 0.0418 0.0862 -0.0329 -0.0949 -0.1048
0.0947 0.0587 -0.0304 0.0770 -0.0187 0.0003 -0.0628 -0.1068 0.1023 0.0669
-0.0424 -0.0686 -0.0745 -0.0949 -0.0700 0.1227 -0.0021 -0.1125 -0.1001 0.0545 Columns 60 to 63
0.0592 -0.0805 -0.0735 -0.0953
0.0493 -0.0285 0.0179 0.0019
0.0548 0.0819 -0.1057 0.0855
0.0880 -0.0224 0.0091 0.0845
0.0501 -0.0397 -0.0922 0.1050
0.0109 -0.1045 0.0098 -0.0755
0.1079 0.0461 0.0320 -0.0830
0.0902 0.0743 -0.0809 -0.0330
-0.0153 0.0420 0.0624 -0.1119
-0.0138 -0.0618 0.1001 0.0437
[torch.FloatTensor of size 10x64] PPP
0.0109
-0.0778
-0.0501
0.0163
0.0763
-0.0792
0.1141
-0.0127
0.0162
0.0808
[torch.FloatTensor of size 10] None
关于pytorch中LSTM的可以再这里查看pytorch之LSTM。
我打印出Lstm的参数,并将它们结合pytorch的官方文档pytorch之LSTM,发现其实LSTM的这些参数都是Variables,注意到这个例子里的w和b也不只有一对,而是有两对,因为LSTM的num_layers=2,当这个值为3时就会有3对,由这里我受到启发,在改变sru的layer后,也发生了变化。由此我得出结论循环神经网络并不是只有一个神经单元,而是可以有多个,之前我一直以为只有一个。
而sru中的参数也是以Variable的形式存在与整个模型中,可以被更新。
关于sru源码class Model的parameters的更多相关文章
- sru源码--language model
import sys import os import argparse import time import random import math import numpy as np import ...
- yii2 源码分析 model类分析 (五)
模型类是数据模型的基类.此类继承了组件类,实现了3个接口 先介绍一下模型类前面的大量注释说了什么: * 模型类是数据模型的基类.此类继承了组件类,实现了3个接口 * 实现了IteratorAggreg ...
- django源码分析---- Model类型&Field类型
djiango在数据库这方式自己实现了orm(object relationship mapping 对象关系模型映射).这个主要是用到python 元类这一 项python中的高级技术来实现的. c ...
- 【异常及源码分析】org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping
一.异常出现的场景 1)异常出现的SQL @Select("SELECT\n" + " id,discount_type ,min_charge, ${cardFee} ...
- 源码剖析Yii错误 Invalid parameter number: no parameters were bound
ActiveRecord使用的一个陷阱导致 Invalid parameter number: no parameters were bound 请看下面的例子 $criteria = new CDb ...
- Laravel源码解析之model(代码)
本篇文章给大家带来的内容是关于Laravel源码解析之model(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 前言 提前预祝猿人们国庆快乐,吃好.喝好.玩好,我会在电视上看 ...
- Backbone源码解析(二):Model(模型)模块
Model(模型)模块在bk框架中的作用主要是存储处理数据,它对外和对内都有很多操作数据的接口和方法.它与视图(Views)模块精密联系着,通过set函数改变数据结构从而改变视图界面的变化.下面我们来 ...
- PureMVC(JS版)源码解析(十一):Model类
这篇博文讲PureMVC三个核心类——Model类.Model类的构造函数及工厂函数[即getInstance()方法]和View类.Controller类是一样的,这里就不重复讲解了,只 ...
- ZRender源码分析2:Storage(Model层)
回顾 上一篇请移步:zrender源码分析1:总体结构 本篇进行ZRender的MVC结构中的M进行分析 总体理解 上篇说到,Storage负责MVC层中的Model,也就是模型,对于zrender来 ...
随机推荐
- 重温jsp③
Jsp详细 九大内置对象 Out jsp的输出流,用来向客户端响应 page 当前jsp对象!他的引用类型是object,即真身中有如下代码:object page=this: Session h ...
- Alpha冲刺——事后诸葛亮
组长博客 作业博客 项目Postmortem 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件针对的是福大学子来到食堂会犹豫不决无法决定吃什么 ...
- c#程序阅读分析
using System; using System.Collections.Generic; using System.Text; namespace FindTheNumber { class P ...
- SpringBoot 2.SpringBoot整合Mybatis
一.创建Springboot的配置文件:application.properties,并添加MyBatis依赖 SpringApplication 会从 application.properties ...
- Threadlocal 传递参数(百度二面)
去百度面试,二面的时候 面试官问 如果我想跟踪一个请求,从接收请求,处理到返回的整个流程,有没有好的办法,后来面试官说了 Threadlocal 可以做到传递参数. 这是ThreadLocal的一个功 ...
- Node.js & SSR
Node.js & SSR nest.js https://github.com/nestjs/nest next.js 中文文档 https://nextjs.org/learn/ Grap ...
- spring 事务传播 never 当一个业务方法设置为never时候表示 不会加入任何事务中
- Java学习之静态代码块
一.static(在方法区有一块固定的存储区域,由于优先于对象存在,所以可以被所有对象共享) 在定义方法的时候你写main方法的类加static, 写普通类的写方法的时候就不要加static 1.st ...
- Codeforces Round #530 Div. 1 自闭记
A:显然应该让未确定的大小尽量大.不知道写了啥就wa了一发. #include<iostream> #include<cstdio> #include<cmath> ...
- 基于Python的轻量级RPC的实现
一 什么是RPC(Remote Procedure Call)远程过程调用 二 RPC or Resful 三 重复造轮子之手撸自己的RPC(基于python语言)