当前位置:   article > 正文

PyTorch学习(三)-卷积神经网络_pytorch卷积神经网络评估函数

pytorch卷积神经网络评估函数

卷积运算

卷积运算是一种特征提取方式,卷积运算结果即为提取的特征,卷积核像一个筛子,将图像中符合条件(激活值越大越符合条件)的特征筛选出来。
卷积神经网络由卷积核而得名。
在这里插入图片描述
卷积核的作用就是把前一层输入的数据特征提取出来,

特征提取

通过一个线性计算映射和一个激励函数(可选),最后在最后一层成为一个数值形式的激励值。
如图输入一个55的图形,图形中的每个像素都是一个具体的数字,每个像素值为RGB具体表现。为了表示方便,用0代表黑色,用1代表白色,表示一个黑白图。用一个33的卷积核对其y=wx+b进行卷积,其中w=[1,0,1,0,1,0,1,0,1],就是11+01+11+01+11+01+10+00+1*1+0=4
这个4会被投射到后方的Feature Map中,就是卷积特征中左上角的点。

同一层的某些神经元是权值共享

注意

这不是矩阵乘法,是两个向量做点积
在这个例子,w=[1,0,1,0,1,0,1,0,1],b=0
在一次扫描后,卷积核会从左到右,从上到下扫描整幅图片,并将每次计算的结果放到convolved feature
如果一个Feature map要与前面的图片的尺寸保持一致,通常需要在边缘补0,这种操作叫做padding,
在这里插入图片描述
扫描过程是跳跃的,可以一次移动一个像素进行扫描。striding =1 如图,如果padding =2,得到的feature map与输入图片的尺寸是相同的。

代码

在代码中,Kernel Size是卷积核的尺寸,卷积核的数目叫做channel,就是使用多少个这样的卷积核对图片进行扫描。在训练的时候使用梯度下降找出各个卷积核的w取什么值的时候模型有更好的表现,一般来说,卷积网络需要的数量比全连接网络更少,训练速度更快,泛化能力更强。

卷积过程

在这里插入图片描述

import torch 
import torch.nn as nn
import torchvision
import torchvision.transforms as transforms


# Device configuration
device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')

# Hyper parameters
num_epochs = 5
num_classes = 10
batch_size = 100
learning_rate = 0.001

# MNIST dataset
# 读取训练集
train_dataset = torchvision.datasets.MNIST(root='../../data/',
                                           train=True, 
                            
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/680447
推荐阅读
相关标签
  

闽ICP备14008679号