《PyTorch深度学习》笔记(1)


卷积核可视化
https://setosa.io/ev/image-kernels/

1、简单介绍

1.1、图像检测大概过程

1第一层检查边缘
2第二层检测鼻子和眼睛等形状
3最后一层检测面部形状或者更复杂的结构

1.2、深度学习应用

图像分类
语音识别
翻译
自动驾驶
Siri
黄瓜智能分拣
医学图像检测
翻译

1.3、数据集

MNIST
COCO
CIFAR
The Street View House Numbers
PASCAL VOC
Wikipedia dump
20 Newsgroups
Penn Treebank
Kaggle

1.4、深度学习框架

Tensorflow
Caffe2
Keras
Theano
PyTorch
Chainer
DyNet
MXNet
CNTK

2、神经网络结构

2.1、图像的表示

  • 图像由3个方面来表示:(高度,宽度,通道数RGB)
  • 阿尔法(α)表示图像的透明度

2.2、张量(不太懂,等回来再看)

  • 标量:0维张量
  • 向量:1维张量
  • 矩阵(2维向量):2维张量
  • 3维张量:图片
  • 4维张量:批图像
64*224*224*3的猫咪图片
64表示批尺寸或者图片数量
224*224表示高和宽
3表示通道数
  • 5维张量:视频
  • GPU张量:

2.3、梯度

损失函数相对于各个需要训练的参数的变化率

2.4、简单的线性回归学习过程

y=wx+b
其中w、b是要学习的参数
我们有很多(x,y)数据

  • 首先随机生成w,b
  • 然后用损失函数(loss)来告诉模型预测值和真实值的差距,预测值和真实值之差求平方
  • 调用loss的backword计算梯度值
  • 学习率是一个超参数,可以让用户通过较小的梯度值变化来调整变量的值,其中梯度指明了每个变量需要调整的方向
简单的优化器的例子,learning_rate是学习率,grad是梯度,w和b是变量
def optimizer(learning_rate):
	w.data -= learning_rate * w.grad.data
	b.data -= learning_rate * b.grad.data

2.5、优化器

  • 作用:降低损失提高准确率
  • pytorch自带的优化器:adam、rmsprop、sgd等,在torch.optim包里有

2.6、加载数据

2.6.1、Dataset类(暂时不知道这个有啥用)

  • python中的继承:
# Child 继承 Person
class Child(Person):
	#省略
  • 所有自定义的数据集,必须继承Dataset类,并实现它的三个方法

2.6.2、Dataloader类(不是很懂,没用过,用了再回来看)

获取多张图片进行轮次训练

2.6.3、batch_size:批尺寸

常用的批尺寸为16、32、64

posted @ 2021-07-20 16:58  猪猪猪猪侠  阅读(61)  评论(0编辑  收藏  举报