pytorch基础API

rand

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)

zeros

torch.zeros( * size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False)
→ Tensor

参数:

  • size:一串用来定义tensor维度的整数,可以是任意个数字,也可以tuple或list等集合
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
参数:

  • start(number):区间开始值
  • end(number):区间末尾值
  • step(number):每添加一个值间隔的距离,默认为1
  • dtype(torch.dtype,optional):需要的返回张量的数据类型

pytorch官方文档

torch.Tensor:

这是一个包含了同一种数据类型数据的多维矩阵,定义了CPU数据类型和GPU数据类型:
pytorch基础API_第1张图片
在我们使用torch.tensor()构造器时,默认的数据类型是torch.FloatTensor

to( * args, ** kwargs) → Tensor:
进行张量的数据类型转换(torch.dtype)或者将数据从cpu载入到GPU(torch.device)中,如果传入的torch.dtype或者torch.device已经符合要求,那么会返回这个张量本身,否则返回符和要求的张量的拷贝。
两种常用的调用方法:

  • to(dtype, non_blocking=False, copy=False) → Tensor
    返回指定数据类型的张量
  • to(device=None, dtype=None, non_blocking=False, copy=False) → Tensor
    可以将数据载入GPU或者修改数据类型,这里dtype是可选类型,当没有传入值的时候,使用初始值

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官方文档

torch.utils.data:

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类结合起来的一个类,提供一个遍历整个数据集的迭代器。
参数列表:

  • dataset(Dataset):待载入的数据集
  • batch_size(int,optional):每一个batch里面的数据个数,默认值为1
  • shuffle(bool,optional):如果为真,每个epoch都将数据重新打乱。
  • sampler(Sampler, optional):定义了怎样从dataset中选区数据,如果这个给定这个值,那么shuffle的值必须为False。
  • num_workers(int, optional):用来载入数据的子进程数,0代表将会使用主进程载入数据,默认值为0.
  • pin_memory(bool, optional):如果为真,data loader会在返回一个batch的数据前将数据拷贝进入CUDA pinned memory。
  • drop_last(bool, optional):如果设置为真,那么最后一个不能构成完整batch的数据将会被丢弃,否则最后一个batch可能相比之前的batch更小,默认为false

class:
torch.utils.data.Dataset

dataset是dataloader载入的数据来源,pytorch支持两种类型的dataset:

  • map-style dataset
  • iterable-style 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)
pytorch基础API_第2张图片

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类

你可能感兴趣的:(pytorch,pytorch,深度学习,python)