MAML代码(Pytorch)阅读笔记

MAML代码阅读笔记-Pytorch

  1. nn.Parameter(): 可以把这个函数理解为类型转换函数,将一个不可训练的类型Tensor转换成可以训练的类型parameter并将这个parameter绑定到这个module里面。这个函数的目的也是想让某些变量在学习的过程中不断的修改其值以达到最优化。
  2. nn.ParameterList():这个类实际上是将一个ParameterList转为ParameterList,如下例所示[nn.Parameter(torch.randn(2, 2)) for i in range(3)]类型是ListList的每个元素是Parameter,然后这个List作为参数传入这个类构造ParameterList类型。
       ParameterList输入一定是一个ParameterList,其他类型会报错,在注册时候就会提示元素不是Parameter类型。
  3. *[1,2]or*(1,2) :在列表前加*号,会将列表拆分成一个一个的独立元素,不光是列表、元组、字典,由numpy生成的向量也可以拆分。
  4. torch.nn.init.kaiming_normal_():使用正态分布对输入张量进行赋值。
  5. torch.nn.Module.extra_repr():设置模块的额外表示信息.为了能够打印用户定制化的额外信息,你需要在你的神经网络模块中重新实现这个方法. 单行字符串或多行字符串都可以用在这个函数中。
  6. torch.no_grad():强制之后的内容不需要计算图构建,即表示张量的计算过程中无需计算梯度。
  7. tensor.grad.zero_():清除tensor的梯度值,也就是重新赋值为0。
  8. torch.autograd.grad(outputs=y, inputs=x):pytorch提供两种求梯度的方法,backward()torch.autograd.grad(),这两种方法的区别在于前者是给叶子节点填充.grad字段,而后者是直接返回梯度。
  9. fast_weights = list(map(lambda p: p[1] - self.update_lr * p[0], zip(grad, self.net.parameters()))):使用梯度下降更新网络参数一种写法。
  10. filter() :用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。 语法:filter(function, iterable)
  11. numpy.random.choice(a, size=None, replace=True, p=None):从a(只要是ndarray都可以,但必须是一维的)中随机抽取数字,并组成指定大小(size)的数组;replace:True表示可以取相同数字,False表示不可以取相同数字;数组p:与数组a相对应,表示取数组a中每个元素的概率,默认为选取每个元素的概率相同。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>