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)

你可能感兴趣的:(深度学习,pytorch,深度学习,人工智能)