Pytorch学习笔记--常用函数torch.randn()、F.max_pool2d()、F.avg_pool2d()总结1

目录

1-torch.randn()函数 

2-set()函数和sorted()函数

3-DataLoader()函数和Dataset类

4-.t()函数

5-最大池化(max_pool2d)和平均池化(avg_pool2d)函数


​​​​​​​

1-torch.randn()函数 

import torch

batch_size = 1
seq_len = 3
input_size = 4

inputs = torch.randn(seq_len, batch_size, input_size) 
torch.randn()函数的作用是生成一组均值为0,方差为1(即标准正态分布)的随机数。示例如下: 
import torch

print(torch.randn(3, 2, 3, 3))

​​​​​​​

torch.randn(seq_len, batch_size, input_size):第一个参数seq_len表示序列长度,示例中序列长度为3;第二个参数batch_size表示批大小,示例中批大小为2;第三个参数input_size为输入向量的维度,示例中为(3, 3)。(在RNN中可理解成:示例中,共有3个序列,每个序列分为2批,每批的维度为3*3。)

#####################################

#####################################

2-set()函数和sorted()函数

self.country_list = list(sorted(set(self.countries))) # set()去重,删除重复的数据; sorted()排序

set()函数用于删除重复的数据元素;sorted()用于元素的排序,示例如下:

a = ['china', 'china', 'japan']
print(list(set(a)))
print(list(sorted(set(a))))

由于‘c’ < 'j',所以‘china’排在‘japan’前面。

#####################################

#####################################

3-DataLoader()函数和Dataset类

from torchvision import datasets
from torch.utils.data import DataLoader, Dataset

batch_size = 64
transform = transforms.Compose([
    transforms.ToTensor(), #将shape为(H, W, C)的img转为shape为(C, H, W)的tensor,将每一个数值归一化到[0,1]
    transforms.Normalize((0.1307, ), (0.3081, )) #按通道进行数据标准化
])

train_dataset = datasets.MNIST(root = '../dataset/mnist/', train = True, download = True, transform = transform)

train_loader = DataLoader(train_dataset, shuffle = True, batch_size = batch_size)

test_dataset = datasets.MNIST(root = '../dataset/mnist/', train = False, download = True, transform = transform)

test_loader = DataLoader(test_dataset, shuffle = False, batch_size = batch_size)

​​​​​​​DataLoader()函数导入的数据集为Dataset类型,shuffle表示是否打乱数据集。

#####################################

#####################################

4-.t()函数

.t()函数的作用是将Tensor转置,示例如下:

import torch

input = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

print(input)
print(input.t())

#####################################

#####################################

5-最大池化(max_pool2d)和平均池化(avg_pool2d)函数

import torch
import torch.nn.functional as F

input = torch.tensor([[[1, 2, 3, 1], [4, 5, 6, 1], [7, 8, 9, 1]]]).unsqueeze(0).float() # unsqueeze(0)在第0个维度前增加一个维度
print(input.size())
output = F.max_pool2d(input, kernel_size = (1, 4))
print(output)

max_pool2d():最大池化操作。根据设定的核大小,选取最大的元素值。示例中,核大小是(1,4),可理解为挑选出每行最大的元素值。

需要说明的是:unsqueeze(0)的作用是在第0维度前扩展一个维度,所以input的size为(1, 1, 3, 4)。

###

import torch
import torch.nn.functional as F

input = torch.randn(1, 1, 4, 4)
print(input.size())
print(input)
output = F.avg_pool2d(input, kernel_size = (2, 2))
print(output)

 avg_pool2d():平均池化操作。根据设定的核大小,计算得到核内元素的平均值。

池化的作用:降维;​​​​​​​抑制噪声,降低信息冗余;提升模型的尺度不变性、旋转不变形;降低模型计算量;防止过拟合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值