莫烦的网址这里
关于卷积神经网络的介绍:
自行搜索或者参考博客1,在莫烦中也有相应的视频
我们接下来直接手动实现一个简单的数字识别的CNN网络:
1.首先定义数据集
通过pytorch的torchvision.datasets网址
dset.MNIST(root, train=True, transform=None, target_transform=None, download=False)
参数说明: - root : processed/training.pt
和 processed/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