porch(3)莫烦python CNN小实现

本文档介绍了如何使用PyTorch手动实现一个简单的卷积神经网络(CNN)进行数字识别。首先定义数据集,利用torchvision.datasets加载MNIST数据。接着创建CNN模型,包含卷积层、激励函数和池化层。最后,训练神经网络并进行测试。代码已附在文中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

莫烦的网址这里

关于卷积神经网络的介绍:

自行搜索或者参考博客1,在莫烦中也有相应的视频

我们接下来直接手动实现一个简单的数字识别的CNN网络:

1.首先定义数据集

通过pytorch的torchvision.datasets网址

dset.MNIST(root, train=True, transform=None, target_transform=None, download=False)

参数说明: - root : processed/training.ptprocessed/test.pt 的主目录 - train : True = 训练集, False = 测试集 - download : True = 从互联网上下载数据集,并把数据集放在root目录下. 如果数据集之前下载过,将处理过的数据(minist.py中有相关函数)放在processed文件夹下, - transform: 一个函数,原始图片作为输入,返回一个转换后的图片。

  • target_transform - 一个函数,输入为target,输出对其的转换。例子,输入的是图片标注的string,输出为word的索引。

1.我们建立test数据集:

train_data = torchvision.datasets.MNIST(
    root='./mnist/',
    train=True,                                     # this is training data
    transform=torchvision.transforms.ToTensor(),    # 黑白图片只有一个层,变成值0-1,Converts a PIL.Image or numpy.ndarray to
                                                    # torch.FloatTensor of shape (C x H x W) and normalize in the range [0.0, 1.0]
    download=DOWNLOAD_MNIST,                        #是否下载?
    #download=False                                  #已经下载
)

2.建立测试数据集,进行评价的时候用

test_data = torchvision.datasets.MNIST(root='./mnist/', train=False) #FALSE说明是testdata
test_x = torch.unsqueeze(test_data.test_data, dim=1).type(torch.FloatTensor)[:2000]/255.   # shape from (2000, 28, 28) to (2000, 1, 28, 28), value in range(0,1)
test_y = test_data.test_labels[:2000]

 

3.然后定义包装数据和tensor的抽象数据集

train_loader = Data.DataLoader(dataset=train_data, ba
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值