长丰县重点工程建设管理局网站,无极网站无极城市在线,jquery特效的网站,外贸网站建设知识 列表问题对比单个全连接网络#xff0c;在卷积神经网络层的加持下#xff0c;初始时#xff0c;整个神经网络模型的性能是否会更好。方法模型设计两层卷积神经网络#xff08;包含池化层#xff09;#xff0c;一层全连接网络。选择 5 x 5 的卷积核#xff0c;输入通道为 1在卷积神经网络层的加持下初始时整个神经网络模型的性能是否会更好。方法模型设计两层卷积神经网络包含池化层一层全连接网络。选择 5 x 5 的卷积核输入通道为 1输出通道为 10此时图像矩阵经过 5 x 5 的卷积核后会小两圈也就是4个数位变成 24 x 24输出通道为10选择 2 x 2 的最大池化层此时图像大小缩短一半变成 12 x 12通道数不变再次经过5 x 5的卷积核输入通道为 10输出通道为 20此时图像再小两圈变成 8*8输出通道为20再次经过2 x 2的最大池化层此时图像大小缩短一半变成 4 x 4通道数不变最后将图像整型变换成向量输入到全连接层中输入一共有 4 x 4 x 20 320个元素输出为 10.代码准备数据集# 准备数据集batch_size 64transform transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.1307,), (0.3081,))])train_dataset datasets.MNIST(rootdata’, trainTrue, downloadTrue, transformtransform)train_loader DataLoader(train_dataset, shuffleTrue, batch_sizebatch_size)test_dataset datasets.MNIST(rootdata, trainFalse, downloadTrue, transformtransform)test_loader DataLoader(test_dataset, shuffleFalse, batch_sizebatch_size)建立模型class Net(torch.nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 torch.nn.Conv2d(1, 10, kernel_size5) self.conv2 torch.nn.Conv2d(10, 20, kernel_size5) self.pooling torch.nn.MaxPool2d(2) self.fc torch.nn.Linear(320, 10) def forward(self, x): batch_size x.size(0) x F.relu(self.pooling(self.conv1(x))) x F.relu(self.pooling(self.conv2(x))) x x.view(batch_size, -1) x self.fc(x) return xmodel Net()device torch.device(cuda:0 if torch.cuda.is_available() else cpu)model.to(device)构造损失函数优化器criterion torch.nn.CrossEntropyLoss()optimizer optim.SGD(model.parameters(), lr0.01, momentum0.5)训练测试def train(epoch): running_loss 0.0 for batch_idx, data in enumerate(train_loader, 0): inputs, target data inputs,targetinputs.to(device),target.to(device) optimizer.zero_grad() outputs model(inputs) loss criterion(outputs, target) loss.backward() optimizer.step() running_loss loss.item() if batch_idx % 300 299: print([%d,%.5d] loss:%.3f % (epoch 1, batch_idx 1, running_loss / 2000)) running_loss 0.0def test(): correct0 total0 with torch.no_grad(): for data in test_loader: inputs,targetdata inputs,targetinputs.to(device),target.to(device) outputsmodel(inputs) _,predictedtorch.max(outputs.data,dim1) totaltarget.size(0) correct(predictedtarget).sum().item() print(Accuracy on test set:%d %% [%d%d] %(100*correct/total,correct,total))if __name__ __main__: for epoch in range(10): train(epoch) test()运行结果1batch_size64训练次数102batch_size128训练次数103batch_size128训练次数10结语对比单个全连接网络在卷积神经网络层的加持下初始时整个神经网络模型的性能显著提升准确率最低为96%。在batch_size64训练次数100情况下准确率达到99%。下一阶在平均池化3*3卷积核以及不同通道数的情况下探索对模型性能的影响。