项目推进中期,重新到头来学Pytorch。five落泪了。(╬▔皿▔)凸
笑死,憋不住了,边更边学。
整篇博客整体采用总分总形式。首先将介绍内容(加黑部分)之间关系进行概括,后拆解,最后以图总结。
全文参考链接:学习 PyTorch (apachecn.org)
分类器 对样本进行分类的方法的统称,包含决策树、逻辑回归、朴素贝叶斯、神经网络等算法。
分类器训练流程如下
神经网络 相关具体知识在此不作赘述。以下链接、推荐供大概了解。博客用到的相关知识会再做解释。
大部分神经网络可分类作前馈网络,仅做正向传播,数据仅从输入经处理到输出。但也可以使用反向传播来训练模型,以达到调整模型参数的目的。
神经网络的模型参数含权重、阈值、损失/loss等。
神经网络一般训练过程如下
参考链接:什么是神经网络? - 中国 | IBM
参考书:西瓜书
Pytorch 一个python语言的科学计算/深度学习框架,可用于搭建神经网络。
import torch
基础知识——Tensor 一个类似numpy的ndarray,且可以在GPU上运行的lib。
在Pytorch框架中,神经网络的输入、输出及参数都用Tensor来描述。
在通过下列引用后,
import torch import numpy as np
可实现操作包含但不限于
- (随机)创建Tensor
- 构建全0矩阵/指定数据的矩阵
- 重载已有的Tensor
- 获取Tensor的shape/Data type/存储的device
- 运算
- 索引某个值
- 改变Tensor的shape
- torch、numpy之间转换
加载数据
其中可调用子类化后的自己的BasicDataset,实例化,用BasicDataset的方法len()查看数据集大小。
图片来自链接:Pytorch-UNet-master>utils>data_loading.py - 麋鹿咖啡魔法师 - 博客园 (cnblogs.com)
定义神经网络
用torch.nn来构建神经网络。其中nn.Module包含各层,以及返回output的方法forward(input)。
torch.autograd为torch.nn提供支持,以定义模型并对其进行微分。
import torch import torch.nn as nn import torch.nn.functional as F
定义损失函数 --> 计算损失
将梯度反向传播给网络参数
更新权重
标签:复习,nn,torch,基础,神经网络,Pytorch,import,Tensor From: https://www.cnblogs.com/DariaJin/p/16840861.html