1. 理论知识
1.1 卷积神经网络:https://www.jianshu.com/p/c0215d26d20a
- padding
- stride
- pooling

CNN(convolutional neural network),主要就是通过一个个的filter,不断地提取特征,从局部的特征到总体的特征,从而进行图像识别等等功能。

padding解决卷积的两个问题,一在卷积过程中图像越来越小,二图片边缘的点相对于中间的点在卷积中计算次数很少,容易丢失边缘信息。

多通道卷积,彩色图像一般都是RGB三个通道,因此输入数据的维度一般有三个:(长,宽,通道),此时filter也是三个维度且第三个通道要和输入的通道维度一样。


-
Convolutional layer(卷积层---CONV)
由滤波器filters和激活函数构成。一般要设置的超参数:filters的数量、大小、步长,padding是“valid”还是“same”、以及激活函数的选择。
-
Pooling layer(池化层---POOL)
Maxpooling or Averagepooling,使用较多的是Max
-
Fully Connected laye(全连接层---FC)
这一层是每一个单元都和前一层的每一个单元相连接,所以称之 为“全连接”。需要指定的超参数:神经元的数量和激活函数。
CNN相对普通神经网络优点
-
parameter sharing(权重共享机制)
对于不同的区域,如果共享同一个filter,就共享同一组参数。可以大大减小网络的参数量,用较少的参数训练出更加好的模型,而且可以有效地避免过拟合。
-
sparsity of connection(连接的稀疏性)

输出图像中的任何一个单元,只跟输入图像的一部分有关系,每一个区域都有自己的专属特征且不受到其他区域的影响。
1.2
2. Pytorch学习
pytorch可以看作是搭建神经网络的Numpy,和Numpy有很多相似之处。有时间之后再补一下Numpy和Pandas数据处理相关知识。
import torch
#创建张量
x = torch.empty(5, 3)
x = torch.rand(5, 3)
x = torch.zeros(5, 3)
#tensor->numpy
x = torch.ones(5, 3)
y = x.numpy()
#numpy->tensor
x = numpy.ones(5, 3)
y = torch.from_numpy(x)
torch函数记录:
torch.add(x, y)
torch.size(x.size(), y.size())
网友评论