【Pytorch】线性层及其它层介绍 - 学习笔记

视频地址
线性层即全连接层
【Pytorch】线性层及其它层介绍 - 学习笔记_第1张图片
官方文档
【Pytorch】线性层及其它层介绍 - 学习笔记_第2张图片

import torch
import torchvision
from torch import nn
from torch.nn import Linear
from torch.utils.data import DataLoader

dataset = torchvision.datasets.CIFAR10("./dataset", train=False, transform=torchvision.transforms.ToTensor())

dataloader = DataLoader(dataset, batch_size=64, drop_last=True)

class Model(nn.Module):
    def __init__(self):
        super(Model, self).__init__()
        self.linear1 = Linear(196608, 10)

    def forward(self, input):
        output = self.linear1(input)
        return output

model = Model()

for data in dataloader:
    imgs, target = data
    print(imgs.shape)
    output = torch.reshape(imgs, (1, 1, 1, -1)) # reshape成一维
    # 也可以写成 torch.flatten(imgs) 展开成一排
    print(output.shape)
    output = model(output)
    print(output.shape)

输出结果为(以一张图为例)

torch.Size([64, 3, 32, 32])
torch.Size([1, 1, 1, 196608])
torch.Size([1, 1, 1, 10])

可以看到,输入是196608,输出是10,实现了线性层的应用

你可能感兴趣的:(Pytorch,深度学习,Python,pytorch,深度学习,机器学习)