pytorch版:
总共分为几个步骤:
1. 加载数据集(这里当然可以用你自己的数据集,但要注意调节参数,h, w, channel)
2. 定义神经网络模型(这里写了两种方法)
3. 检查模型
4. 将模型传入gpu
5. 损失函数和优化器
6. 训练
7. 绘制曲线
8. 评估模型
#LeNet-5网络结构
import torch.nn as nn
import torch
import torchvision
from torchvision import transforms
from torch.utils import data
import matplotlib.pyplot as plt
import torch.nn.functional as F
#定义加载数据集函数
def load_data_mnist(batch_size):
'''下载MNIST数据集然后加载到内存中'''
train_dataset=torchvision.datasets.MNIST(root='dataset',train=True,transform=transforms.ToTensor(),download=True)
test_dataset=torchvision.datasets.MNIST(root='dataset',train=False,transform=transforms.ToTensor(),download=True)
return (data.DataLoader(train_dataset,batch_size,shuffle=True),
data.DataLoader(test_dataset,batch_size,shuffle=False))
#LeNet-5在MNIST数据集上的表现
batch_size=64
train_iter,test_iter=load_data_mnist(batch_size=batch_size)
###########################################################################
# 神经网络模型的第一种形式
# net = nn.Sequential(
# nn.Conv2d(1, 6, kernel_size=5, padding=2), nn.Sigmoid(),
# nn.AvgPool2d(kernel_size=2, stride=2),
# nn.Conv2d(6, 16, kernel_size=5), nn.Sigmoid(),
# nn.AvgPool2d(kernel_size=2, stride=2), nn.Flatten(),
# nn.Linear(16 * 5 * 5, 120), nn.Sigmoid(),
# nn.Linear(120, 84),