L0 torch 构建网络初步

本文详细介绍了如何使用PyTorch构建全连接层(Linear)以及简单的多层感知器网络。从手工定义全连接层开始,通过测试确保其正常工作,接着组合两个全连接层形成感知器,最后利用nn.Sequential模块快速搭建网络,避免了手动在forward方法中组装网络的复杂过程。
摘要由CSDN通过智能技术生成

L0 pytorch 构建简单网络

本文是L0, 目的是把pytorch构建感知器的程序,仔细剖析理解。

import torch
from torch import nn
torch.__version__
'1.3.0'

STEP 1 手工定义全连接层Linear

#torch.nn是专门为深度学习设计的模块。torch.nn的核心数据结构是Module
#它是一个抽象的概念,#既可以表示神经网络中的某个层(layer),
#也可以表示一个包含很多层的神经网络
#class Linear(nn.Module):
#    def __init__(self,in_dim,out_dim):
#    def forward(self,x):


# 手工定义全连接层,写forward
class Linear(nn.Module):
    def __init__(self,in_dim,out_dim):
        super(Linear,self).__init__() 
        #调用nn.Moudule 的初始化函数,首先找到Linear的父类nn.Moudle
        #然后把类Linear的对象self转换为类nn.Moudle的对象,然后“被转换”的类nn.Moudle对象调用自己的__init__函数
        #也可以写成nn.Module.__init__(self)
        
        #在构造函数__init__中必须自己定义可学习的参数,并封装成Parameter
        # parameter是一种特殊的Variable,但其默认需要求导(requires_grad = True)
        self.w = nn.Parameter(torch.randn(in_dim,out_dim))
        self.b = nn.Parameter(torch.randn(out_dim))
        
    def forward(self ,x):
        x=x.matmul(self.w) #使用Tensor.matmul 实现w*x矩阵相乘
        y=x&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值