import torch
import torchvision
from torch import nn
from torch.nn import Conv2d, MaxPool2d, Flatten, Linear, Sequential
from torch.utils.data import DataLoader
dataset = torchvision.datasets.CIFAR10("F:/projects/venv/imgs", train=False, transform=torchvision.transforms.ToTensor(),
download=True)
dataload = DataLoader(dataset, batch_size=64)
class convd(nn.Module):
def __init__(self):
super(convd, self).__init__()
self.model = Sequential(
Conv2d(3, 32, 5, padding=2),
MaxPool2d(2),
Conv2d(32, 32, 5, padding=2),
MaxPool2d(2),
Conv2d(32, 64, 5, padding=2),
MaxPool2d(2),
Flatten(),
Linear(1024, 64),
Linear(64, 10)
)
def forward(self,x):
x=self.model(x)
Convd=convd()
print(Convd)
loss=nn.CrossEntropyLoss()
optic=torch.optim.SGD(Convd.parameters(),lr=0.01)
for epoch in range(20):
running_loss=0
for data in dataload:
imgs, target = data
output = Convd(imgs)
result_loss=loss(output,target)
optic.zero_grad()
result_loss.backward()
optic.step()
running_loss=running_loss+result_loss
print("输出损失",running_loss)
卷积神经网络学习
最新推荐文章于 2022-10-21 00:48:29 发布