街景字符识别—字符识别模型

1. CNN简介

CNN,卷积神经网络,是深度学习中的一个分支,在计算机视觉领域,特别是图像分类、图像检索、物体检测和语义分割的主流模型。CNN每一层由众多卷积核组成,每个卷积核对输入的像素进行卷积操作,得到下一次输入。
在这里插入图片描述
CNN是一种层次模型,由卷积、池化、非线性激活函数和全连接层组成。
在这里插入图片描述
上图为LeNet结构图,是经典的字符识别模型。通过多次卷积和池化,最后将输入的像素映射为具体的输出。假若是分类任务,则会输出不同类别的概率,然后计算真实标签与CNN模型的预测结果的差异,并通过反向传播更新每层的参数,并在更新完成后再次向前传播,如此反复,直至训练完成。

2. 使用pytorch构建CNN模型

在pytorch中构建CNN模型十分简单,只需要定义模型参数和正向传播即可,pytorch会自动根据正向传播计算并完成反向传播。下面构建的这个模型具有两个卷积层和六个全连接层。

导入工具库

import torch
torch.manual_seed(0)
torch.backends.cudnn.deterministic = False
torch.backends.cudnn.benchmark = True

import torchvision.models as models
import torchvision.transforms as transforms
import torchvision.datasets as datasets
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
from torch.autograd import Variable
from torch.utils.data.dataset import Dataset

定义模型

class SVHN_Model1(nn.Module):
    def __init__(self):
        
        super(SVHN_Model1, self).__init__()
        
        # CNN提取特征模块
        self.cnn = nn.Sequential(
            nn.Conv2d(3, 16, kernel_size=(3, 3), stride=(2, 2)),
            nn.ReLU(), 
            nn.MaxPool2d(2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值