常用的两大深度学习框架
- Google:TensorFlow(Keras)
- Facebook:PyTorch(Caffe)
- 两者本质区别:动态图优先还是静态图优先
- 动态图:在运行时可以改变公式,暂停,查看临时变量
- 静态图:定义公式——给输入——返回输出(不能停下来和改变公式)
- PyTorch使用动态图,TensorFlow使用静态图和动态图
PyTorch能做什么
- GPU加速,提高计算速度
- 自动求导
神经网络层数再深,宽度再大,结构再复杂,它也只是一系列函数的嵌套 - 常用网络层
可以像搭积木一样去搭建一些复杂的神经网络的结构
nn.Linear
nn.Conv2d
nn.LSTM
nn.ReLU
nn.Sigmoid
nn.Softmax
nn.CrossEntropyLoss
nn.MSE
如何安装开发环境
- Python 3.7 + Anaconda 5.3.1(自动下载和管理第三方软件库的插件)
- CUDA 10.0
- Pycharm Community
什么是Anacada?
- 可以便捷的下载和管理第三方软件包,同是对环境可以统一管理的发型版本
什么是CUDA?
- 是Nvida推出的只能用于自家GPU的并行计算框架,只有安装这个框架才能进行复杂的并行计算。主流的深度学习框架也都是基于CUDA进行GPU并行加速的。
-
- 当做API接口,方便进行硬件资源的调用
什么是CUDNN(CUDA deep Neural Nerwork libraray)
是NVIDIA打造的针对深度神经网络的加速库,是一个用于深层神经网络的GPU加速库
回归问题
1. 简单的回归问题
常见的求解器
- adam
- sgd
- rmsprop
常见的问题
- linear regression:线性函数的回归
- logistic regression:压缩至[0,1]范围
- classification:分类问题
torchvision库简介
torchvision是独立于pytorch的关于图像操作的一些工具库
torchvision主要包括以下几个包:
- vision.datasets:几个常用的视觉数据集,可以下载和加载,这里主要的高级用法就是可以看源码学会写自己的Dataset
- vison.models:流行的模型,如AlexNet,VGG,ResNet和Densenet以及训练好的参数
- vision.transforms:常用的图像操作,例如:随机切割、旋转、数据类型转换,图像到tensor,numpy数组到tensor,tensor到图像等。
- vision.utils:将形似(3HW)的张量保存到硬盘中,给一个mini-batch(更新参数的方式)的图像可以产生一个图像网格。