1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
""" @Project :Pytorch_learn @File :Sequential与模型搭建实战.py @IDE :PyCharm @Author :咋 @Date :2023/7/4 15:25 """ import torch from torch.utils.data import DataLoader,Dataset from torch.nn import Module,Conv2d,MaxPool2d,Sequential,Flatten,Linear import torch.nn as nn import torch.nn.functional as F from torchvision import transforms import torchvision
dataset = torchvision.datasets.CIFAR10("CIFAR10",train=True,transform=transforms.ToTensor(),download=True) dataloader = DataLoader(dataset=dataset,batch_size=64) from tensorboardX import SummaryWriter ''' 普通定义 class MyModule(Module): def __init__(self): super(MyModule, self).__init__() self.conv1 = Conv2d(3,32,5,padding=2) self.maxpool1 = MaxPool2d(2) self.conv2 = Conv2d(32,32,5,padding=2) self.maxpool2 = MaxPool2d(2) self.conv3 = Conv2d(32,64,5,padding=2) self.maxpool3 = MaxPool2d(2) self.flatten = Flatten() self.Linear1 = Linear(1024,64) self.Linear2 = Linear(64,10)
def forward(self,x): x = self.conv1(x) x = self.maxpool1(x) x = self.conv2(x) x = self.maxpool2(x) x = self.conv3(x) x = self.maxpool3(x) x = self.flatten(x) x = self.Linear1(x) x = self.Linear2(x) return x
'''
class MyModule(Module): def __init__(self): super(MyModule, 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) return x
model = MyModule() print(model)
write = SummaryWriter("log_4")
for i,data in enumerate(dataloader): image,label = data print(image.shape) write.add_graph(model,image) output = model(image) print(output.shape)
write.close()
|