Q:next(self.parameters())是什么?
Q:next(self.parameters()).new_zeros()是什么?
Q:next(self.parameters()).data是什么?
Q:next(self.parameters()).data.new(batch_size, self.nhid).zero_()是什么?
A:
1. 使用:
某类的某一函数:
def init_hidden(self, batch_size, hidden_size):
weight = next(self.parameters())
h0 = weight.new_zeros(batch_size, hidden_size)
return h0
或
def init_hidden(self, batch_size):
weight = next(self.parameters()).data
h0 = weight.new(batch_size, self.nhid).zero_()
return h0
4.0版本不需要Variable
2. 解释:
next:通过调用它的next()方法从迭代器中检索下一项。
next(self.parameters()):这里,它返回该类的第一个参数。
next(self.parameters()).new_zeros(4,100):按照自己的意愿创建一个变量,但是您需要在这种情况下指定数据类型。通过new,我们构造了一个数据类型相同的新张量(作为第一个参数)。
参考链接:https://discuss.pytorch.org/t/what-does-next-self-parameters-data-mean/1458