基于PyTorch的验证码识别
假期之前就有了实现一个验证码识别的神经网络的打算。假期开始就跟着西瓜书和吴恩达的公开课整体学习了一遍并自己手撕了一个神经网络,结果非常不理想,准确率只有20%左右 (甚至不如OCR),期间还经历了虚拟机死机, 于是就转而使用PyTorch框架实现。
PyTorch简介
PyTorch是一个开源的Python机器学习库,基于Torch,底层由C++实现,应用于人工智能领域,如自然语言处理。它主要由Facebook的人工智能研究团队开发,并且被用于Uber的概率编程软件Pyro。
PyTorch主要有两大特征:
类似于NumPy的张量计算,可使用GPU加速;
基于带自动微分系统的深度神经网络。
PyTorch包括torch.nn、torch.optim等子模块。
来自:PyTorch-维基百科
PyTorch框架的基本流程
构建数据集
获取验证码图片的代码按下不表,图片大小为40×100。构建数据集是将图片按照框架要求放入torch.Tensor中。
import re
import torch
from torch.utils.data import Dataset
import os
from PIL import Image
from torchvision import transforms
class MyDataset(Dataset):
transform = transforms.Compose([
transforms.ToTensor(),
transforms.Resize((40, 100<