torch.rand(
*size,
*,
out=None,
dtype=None,
layout=torch.strided,
device=None,
requires_grad=False
) → Tensor
Returns a tensor filled with random numbers from a uniform distribution on the interval [0, 1)
torch.zeros( * size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)
→ Tensor
参数:
import torch
x=torch.zeros((3,3))
print(x)
输出:
tensor([[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
torch.arange(start=0, end, step=1, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor
返回一个一维张量,这个张量的大小为:
,值从start开始,每次增加一个step,直到end
参数:
pytorch官方文档
这是一个包含了同一种数据类型数据的多维矩阵,定义了CPU数据类型和GPU数据类型:
在我们使用torch.tensor()构造器时,默认的数据类型是torch.FloatTensor
to( * args, ** kwargs) → Tensor:
进行张量的数据类型转换(torch.dtype)或者将数据从cpu载入到GPU(torch.device)中,如果传入的torch.dtype或者torch.device已经符合要求,那么会返回这个张量本身,否则返回符和要求的张量的拷贝。
两种常用的调用方法:
long() → Tensor:
self.long()和self.to(torch.int64)作用相同。
*view(shape) → Tensor:
用于改变张量的形状
import torch
x=torch.randn(4,4)
print(x.size())
y=x.view(-1,8)
print(y.size())
输出:
torch.Size([4, 4])
torch.Size([2, 8])
torch.tensor官方文档
class:
torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False, sampler=None, batch_sampler=None, num_workers=0, collate_fn=None, pin_memory=False, drop_last=False, timeout=0, worker_init_fn=None, multiprocessing_context=None)
dataloader是将dataset类和sampler类结合起来的一个类,提供一个遍历整个数据集的迭代器。
参数列表:
class:
torch.utils.data.Dataset
dataset是dataloader载入的数据来源,pytorch支持两种类型的dataset:
map-style类型的dataset可以以一个例子理解,假如使用dataset[idx]去访问dataset内容,会从磁盘中读取第i张图片和这张图片对应的label,dataset中存储的是对数据存储位置的映射,而不是直接存储数据
所有的map-style类型的dataset都以torch.utils.Dataset为基类,并且需要重新实现__getitem__()和__len__()功能,getitem方法实现的内容是通过给定一个key,可以映射到一个数据实例(图片或视频,加标签),len方法实现的内容是返回dataset的长度,这个方法会经常被Sampler类调用,并且len本身也是Dataloader常使用的方法。
*torch.utils.data.TensorDataset(tensors)
import torch
from torch.utils.data import TensorDataset
fir=torch.arange(10*5,dtype=torch.float32).view(10,5)
sed=torch.arange(10*10,dtype=torch.float32).view(10,10)
thi=torch.arange(10*15,dtype=torch.float32).view(10,15)
dataset=TensorDataset(fir,sed,thi)
print(dataset[0])
输出:
(tensor([0., 1., 2., 3., 4.]),
tensor([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.]),
tensor([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., 14.]))
torch.utils.data类