一文入门pytorch框架

使用torch.nn包来构建神经网络

张量:向量的一种多维拓展

nn包依赖autograd包来定义模型并求导。 一个nn.Module包含各个层和一个forward(input)方法,该方法返回output

  1. 定义包含一些可学习的参数(或者叫权重)神经网络模型;
  2. 在数据集上迭代;
  3. 通过神经网络处理输入;
  4. 计算损失(输出结果和正确值的差值大小);
  5. 将梯度反向传播回网络的参数;
  6. 更新网络的参数,主要使用如下简单的更新原则: weight = weight - learning_rate * gradient

torch.Tensor:一个用过自动调用 backward()实现支持自动梯度计算的 多维数组 , 并且保存关于这个向量的梯度 w.r.t.

nn.Module:神经网络模块。封装参数、移动到GPU上运行、导出、加载等

https://pytorch-cn.readthedocs.io/zh/latest/package_references/torch-nn/

nn.Linear

class torch.nn.Linear(in_features, out_features, bias=True)

对输入数据做线性变换:y=Ax+b

Tensor.view() : 相当于reshape,改变张量形状

autograd.Function:实现一个自动求导操作的前向和反向定义,每个变量操作至少创建一个函数节点,每一个Tensor的操作都回创建一个接到创建Tensor和 编码其历史 的函数的Function节点。

F.softmax(a,b) : a是数据,b是指定维度

torch.max():返回一个远足,分别是最大值和对应的index

torch.squeeze(): 将数据中所有的1去掉,如果指定维度,则只去掉指定维度的。

torch.save():保存序列化的对象到磁盘,使用了Pythonpickle进行序列化,模型、张量、所有对象的字典。

torch.load():使用了pickle的unpacking将pickled的对象反序列化到内存中。

torch.nn.Module.load_state_dict():使用反序列化的state_dict加载模型的参数字典。

nn.Module.train():将module设置为 training mode,仅仅当模型中有DropoutBatchNorm是才会有影响

nn.Module.eval():将模型设置成evaluation模式,仅仅当模型中有DropoutBatchNorm是才会有影响。

训练集数据和测试集数据分布不一样,为了在eval的时候不改变模型的参数(在有BN和Dropout层时)而设置的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江湖无为

感谢你们的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值