神经网络——线性层
·


线性层参数 in_features 就是输入x,out_features 是线性层的输出是上图的g。x到g的关系式为:,其中的
是权重,
是偏置(参数bias为True时,才存在)。阅读官方文档可知,weight和bias都是从分布中采样初始化,经过训练得最终结果。

在vgg16模型中, 将224*224*3的图片转变为了1*1*4096的大小,经过训练,得到最终的1*1*1000的结果。
我们也采取相同的方式:
import torch
import torchvision
from torch.utils.data import DataLoader
dataset = torchvision.datasets.CIFAR10("./dataset", False, torchvision.transforms.ToTensor())
dataloader = DataLoader(dataset, 64)
for data in dataloader:
imgs, targets = data
input = torch.reshape(imgs, [1, 1, 1, -1])
打印形状的大小:[1, 1, 1, 196608]。编写网络,有196608个输入和10个输出:
class Model(nn.Module):
def __init__(self):
super(Model, self).__init__()
self.linear = nn.Linear(196608, 10)
def forward(self, input):
return self.linear(input)
实例化后,将imgs传入实例化对象,即可线性处理。
我们可以使用函数直接将imgs变为一行数据:

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)