pytorch2--全连接层、GPU加速、测试

本文详细介绍了深度学习中全连接层的构建与激活函数的使用,通过PyTorch框架实现了从数据加载到网络训练的全过程。文章重点讲解了nn.Linear层的应用,ReLU与LeakyReLU激活函数的区别,以及如何利用GPU加速训练过程。

目录

 

一.全连接层

1.nn.Linear

2.加入relu

3.nn.ReLU与F.relu

4.封装网络结构

二.激活函数与GPU加速

三.测试

四.封装网络结构+nn.ReLU+GPU加速实现多分类

一.全连接层

1.nn.Linear

不需要建立w/b,将torch.Size([1, 784])输出为torch.Size([1, 10])即实现in784->out200,200->200,200->10

import torch
import torch.nn as nn 
x = torch.randn([1,784])
x.shape

layer1 = nn.Linear(784,200)
layer2 = nn.Linear(200,200)
layer3 = nn.Linear(200,10)

x = layer1(x)
x.shape
x = layer2(x)
x.shape
x = layer3(x)
x.shape

2.加入relu

本来x直接送到下一个layer,加入激活函数Relu之后,确保非线性的保持。

import torch
import torch.nn as nn
import torch.nn.functional as F

x = torch.randn([1,784])
x.shape

layer1 = nn.Linear(784,200)
layer2 = nn.Linear(200,200)
layer3 = nn.Linear(200,10)

x = layer1(x)
x = F.relu(x,inplace=True)
x.shape

x = layer2(x)
x = F.relu(x,inplace=True)
x.shape

x = layer3(x)
x = F.relu(x,inplace=True)
x.shape

3.nn.ReLU与F.relu

class-style API:nn.ReLu大写, 必须先实例化再调用,w/b是内部成员不能私自访问,只能使用 .parameters 来访问。

layer=nn.ReLU()

x=layer(x)

function-style API: F.relu小写,底层操作,不需要实例。

x = F.relu(x,inplace=True)

4.封装网络结构

之前的3层是分开的,我们创建一个自己的类(网络结构),封装性更强,继承自nn.Module。

①初始化

②forward()

③不需要backward()

#封装网络结构
class MLP(nn.Module):
    def __init__(self):
        supe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值