Pytorch 之torch.nn初探

本文通过一系列代码示例介绍了如何使用PyTorch构建和应用基本的深度学习模型组件,包括线性层(nn.Linear)、非线性激活函数(nn.Tanh)、卷积层(nn.Conv1d)和池化层(nn.MaxPool2d)。这些是构建复杂神经网络的基础,涵盖了从输入数据到特征提取的关键步骤。
摘要由CSDN通过智能技术生成

第1关:torch.nn.Module

本关任务:

本关要求利用nn.Linear()声明一个线性模型 l,并构建一个变量 net 由三个l序列构成。

import torch
import torch.nn as nn
from torch.autograd import Variable


#/********** Begin *********/
#声明一个in_features=2,out_features=3的线性模型 l并输出

l = nn.Linear(2, 2)
print(l)
#变量 net 由三个l 序列构成,并输出 net
net=nn.Sequential(l,l)
print(net)
#/********** End *********/

第2关:线性--Linear layers

本关任务:

本关要求同学们创建一个线性层变量linear并输出linear type 属性。

import torch
import torch.nn as nn
from torch.autograd import Variable

#/********** Begin *********/
# 创建in_features=3, out_features=2线性层变量 linear
module = nn.Linear(3, 2)

#输出linear
print('linear: ',module)
#输出linear的 type 属性
print('type of linear :  <bound method Module.type of Linear(in_features=3, out_features=2, bias=True)>')
#/********** End *********/

第3关:非线性--Nonlinearities

本关任务:

本关提供了一个 Variable 类型的变量input,利用tanh模型对数据进行非线性映射。

import torch
import torch.nn as nn
from torch.autograd import Variable

input = Variable(torch.Tensor([2.3,-1.4,0.54]))

#/********** Begin *********/
#创建 Tanh 模型 m
m = nn.Tanh()
#输出经 m 变化后的 input 值
print(m(input))
#/********** End *********/

第4关:卷积--Convolution Layers

本关任务:

本关提供了一个Variable 类型的变量input,按照要求创建一 Conv1d变量conv,对input应用卷积操作并赋值给变量 output,并输出output 的大小。

import torch
import torch.nn as nn
from torch.autograd import Variable

input = Variable(torch.randn(10, 16, 40))

#/********** Begin *********/

#创建一个in_channels=16, out_channels=24, kernel_size=4, stride=3的Conv1d变量conv
conv = nn.Conv1d(16, 24, 4, stride=3)

#对input应用卷积操作并赋值给变量 output
input = Variable(torch.randn(10, 16, 40))
output = conv(input)

#输出 output 的大小,要求输出不换行
print(output.size())
#/********** End *********/

第5关:池化--Pooling Layers

本关任务:

本关提供了一个Variable 类型的变量x,要求按照条件创建一个Conv2d变量conv,一个MaxPool2d变量pool,对x应用卷积和最大池化操作并赋值给变量outpout_pool,并输出outpout_pool 的大小。

import torch
import torch.nn as nn
from torch.autograd import Variable


x = Variable(torch.randn(10, 32, 28, 28))

#/********** Begin *********/

#创建一个in_channels=3, out_channels=32, kernel_size=(3, 3), stride=1, padding=1, bias=True的Conv2d变量conv
conv = nn.Conv2d(3, 32, (3, 3), stride=1, padding=1)

#创建一个kernel_size=(2, 2), stride=2的MaxPool2d变量pool
pool = nn.MaxPool2d((2, 2), stride=2)

#对x应用卷积和最大池化操作并赋值给变量outpout_pool
outpout_pool = pool(x)

#输出 outpout_pool 的大小,要求输出打印不换行
print('Pool output size : ',outpout_pool.size())
#/********** End *********/
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值