理解基本概念

配置开发环境

pytorch1.12.1和torchvision0.13.1
pycharm环境配置和debug
debug每个断点可以在运行到时可以观察参数的情况
step over和step into
按住ctrl查看参数定义
- 清华源
- pip install numpy== 查找可以装的版本
- pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple
- 手动装:从pypi下载.whl文件
- github-issue找已发现错误
PyTorch框架介绍与配置安装
why to choose:选的人多;向下兼容好
案例学习·使用神经网络进行分类任务
这部分难度较大,我在一步一步学习:
grab my courage again
Mnist分类任务
- torch中的基础模块
- 导入包import (版本–
- 下载数据集 (data文件夹中
- 环境:jupyter
- 读入数据 (packle
- 展示数据 (pyplot; 不懂的多打印
- 讲解数据内容:规模,样本
- 数据处理 (torch; 进行格式转换,map映射操作
- torch(tensor=张量)和numpy(ndarray)区别
- n,c:样本个数,像素特征
- 测试torch
- nn.function:测试,简单;nn.Module
- 测试函数(x*w+b):损失,交叉;
- 指定一次训练多少个样本=>x;初始化w和b
- 权重参数:随机初始化而来
- 初始化w:规模考虑输入,经过一层计算,10个分类(10个数字),模型更新=>w需要有梯度
- 参与计算的两个参数:预测结果,标签
- 构建模型:手写字体识别
-
全连接结构:每一层都是权重参数*输入+偏置项
-
结构:输入层:784(28*28)个像素=> 隐层(hidden units):128个神经元=> 输出层:取决于任务(10个数字分类)
-
逻辑:输入=> 得到128个特征=> 当前样本属于各个分类的概率
-
6.1.构建网络:引入nn(神经网络)模块;面向工具包编程(定义一个类,继承nn.Module;定义构造函数(定义层;定义随机杀死神经元百分比);定义前向传播:输入x,定义怎样用,走一层还走drop out避免过度拟合
-
打印一些数据,做基本观察
-
6.2. 构建数据集:TensorDataset(封装数据)和DataLoader(打包数据)
-
数据:训练集和验证集
-
6.3. 训练数据:
-
优化器:参数包含更新哪些参数和学习率,(梯度方向,更新操作,梯度置零)
-
模型的两个模式:训练和验证(不更新)
-
进入循环,训练(做计算,更新w,b),验证
-
一个epoch就把整个数据集训练了一遍=>
-

-
zip的用法
-
max的用法
DateLoader自定义数据集制作
自定义数据集
dateloader: pytorch提供的打包数据的方法
样本名称 标识符
示例:标注文件(不限格式 )+混在 一起的样本
random shuffle
- 导包
- 得到字典
- 把图片路径和标签都转进list,并把路径补充完整
- 定义数据类
- 构造:数据->列表
- 获取:获取一个样本数据
- 类数理化
- 训练和验证数据集进行传输(dataloader)
- 检查并进行训练
这篇博客介绍了如何配置PyTorch1.12.1和torchvision0.13.1环境,以及在PyCharm中进行debug。通过实例学习神经网络分类任务,特别是MNIST手写数字识别。文章详细阐述了数据预处理、张量与numpy的区别、模型构建、训练与验证过程,以及如何使用DataLoader。同时,讨论了PyTorch的全连接网络结构和前向传播。
1337

被折叠的 条评论
为什么被折叠?



