pytorch系列-00学习的先决条件和教学大纲
pytorch系列-01张量解释——深度学习的数据结构
pytorch系列-02深度学习中关于张量的阶、轴和形状的解释
pytorch系列-03CNN中张量的输入形状和特征图
pytorch系列-04Pytorch中张量讲解
pytorch系列-05PyTorch中张量的创建方法的选择
pytorch系列-06关于张量的Flatten、Reshape和Squeeze的解释
pytorch系列-07CNN的Flatten操作
pytorch系列-08PyTorch的Broadcasting 和 Element-Wise 操作
pytorch系列-09张量运算之ArgMax和Reduction
pytorch系列-10深度学习中的数据简介
pytorch系列-11CNN项目准备工作-图片的 Extract, Transform, Load (ETL)
pytorch系列-12PyTorch 中Datasets And DataLoaders的使用
pytorch系列-13面向对象编程的方式搭建CNN网络
pytorch系列-14CNN层参数详解
pytorch系列-15PyTorch神经网络中可学习的参数——CNN权重
pytorch系列-16PyTorch中Linear层的原理
pytorch系列-17PyTorch中CNN的Forward方法
pytorch系列-18基于前向传播解释CNN如何对图片预测
pytorch系列-19神经网络批处理
pytorch系列-20CNN输出大小公式
pytorch系列-21CNN训练示例
pytorch系列-22CNN循环训练的解释
pytorch系列-23CNN中的混淆矩阵
pytorch系列-24PyTorch,TensorFlow和NumPy中Stack Vs Concat
pytorch系列-25使用PyTorch的TensorBoard-可视化深度学习指标
pytorch系列-26超参数调整和实验-训练深度神经网络
pytorch系列-27Training Loop Run Builder-神经网络实验
pytorch系列-28CNN训练循环重构-同时进行超参数测试
pytorch系列-29PyTorch DataLoader Num_workers-深度学习限速提升
pytorch系列-30GPU 上的 PyTorch - 用 CUDA 训练神经网络
pytorch系列-31PyTorch数据集标准化-Torchvision.Transforms.Normalize()
pytorch系列-32PyTorch DataLoader 源代码 - 调试阶段
pytorch系列-33PyTorch Sequential Models - 简化神经网络
pytorch系列-34Batch Norm In PyTorch - 将归一化添加到 Conv 网络层中
pytorch - 学习的先决条件和教学大纲
- python的编程经验
- 深度学习的基础知识
ps: 建议掌握上述的先验知识。
知识结构
pytorch-相关介绍(python深度神经网络包)
-
PyTorch 既是一个深度学习框架也是一个科学计算包 。科学计算方面主要是PyTorch张量库和相关张量运算的结果。
-
tensor(张量) 是一个n 维数组或者一个n-D数组
-
python最流行的一个科学计算包是numpy,numpy-n维数组的转换包。
-
pytorch 是一个张量库 --这就使得numpy和pytorch有很高的互通操作性。
-
pytorch 张量及其相关操作与Numpy中的N维数组非常相似。
-
所有的深度学习框架都有两个特性:一个张量库,一个是用于计算导数的包。
-
故,pytorch中的torch—张量库;torch.autograd --计算导数的包 —autograd (自动求导)
-
pytorch时我们专注于神经网络而不是实际的框架
-
pytorch的计算设计图是动态生成的,这对研究工作是十分有利的。
解放用户,就是不想让它们像抽象的或者复杂的api过程那样,给用户负担。
pytorch安装
cuda相关介绍/深度学习为什么使用GPU
- 理解Cuda是什么,以及它如何与pytorch相结合的,为什么我们选用GPU做神经网络的编程
为什么选用GPU做神经网络的编程计算
有一种计算方式,我们称之为 并行计算 通过这种计算一个特定的计算被分解成独立的,可以同时进行的更小的计算。
神经网络是易平行,gpu通常有三千个,像高能gpu有三千个核可以并行运行计算
我们说,我们可以选择性地在gpu上或CPU上运行我们地计算,但为什么不直接在GPU上运行每个计算呢(GPU不是比CPU快嘛?)?
- 由于GPU对于特定的专门任务来说,速度更快。在某种情况下会遇到性能较慢的瓶颈。例如,把数据从cpu转移到gpu上代价高昂,从而我们的性能就会降低,但是对于那些可以被分解成许多小任务的任务来说,GPU效果是很不错的。
CUDA是什么?
Cuda是为开发者提供API的软件层。通过下载Cuda工具包来使用Cuda,在这个工具包中,有一些专门的库,比如Cudnn(cuda深度学习神经网络库),现在cudnn一开始就由pytorch自带了,不需要额外的下载,同时,我们也可以用pytorch来驱动cuda.
GPU 作为底层的硬件,Cuda是GPU顶端的软件架构,最后是Cuda顶部的Cudnn库,之后我们再结合pytorch来进行开发。
Tensor的相关介绍,深度学习的数据结构
- 张量的术语,张量的索引
- 张量是神经网络使用的主要数据结构
- 我们不需要去管张量在物理中的意义,在机器学习中,没有任何意义,我们用张量来表示数学中的标量,向量和矩阵,多维数组等,我们都用n维张量来表示,n告诉我们在结构中访问特定元素所需要的索引数量。即,在深度学习和神经网络编程中,张量是多维数组。
张量的基本属性(秩、轴和形状)
秩,轴,形状是相互建立的,从秩开始,然后是轴,最后是形状。
所有的秩,轴和形状都与索引的概念有本质上的联系
为什么引入形状,形状允许我们从概念上考虑甚至想象一个张量,更高阶张量更加抽象。
张量重塑的概念
- 准备数据
- 构建模型
- 创建一个扩展nn.Module基类的神经网络类。
- 在类构造函数中,将网络层定义为类属性。
- 使用网络的层属性以及nn.functional API操作来定义网络的前向传递
- 训练模型
- 分析模型的结果