创建
- torch.from_numpy(ndarray) → Tensor:将numpy.ndarray 转换为pytorch的 Tensor。两者共享内存。返回的张量不能改变大小。
- orch.linspace(start, end, steps=100, out=None) → Tensor:生成一个 从start 到 end 的tensor。tensor的长度为steps。包括start和end。
- torch.arange(start, end, step=1, out=None) → Tensor:不包含end
- torch.ones(*sizes, out=None) → Tensor
- torch.zeros(*sizes, out=None) → Tensor
- torch.rand(*sizes, out=None) → Tensor:[0,1)的均匀分布的一组随机数
- torch.randn(*sizes, out=None) → Tensor:标准正泰分布(均值为0,方差为 1)的一组随机数。
- torch.randperm(n, out=None) → LongTensor:从0 到n -1 的随机整数排列。
(从0到n-1的随机整数排列)
- torch.normal(means, std, out=None):均值means是一个张量,包含每个输出元素相关的正态分布的均值。std是一个张量,包含每个输出元素相关的正态分布的标准差。均值和标准差的形状不须匹配,但每个张量的元素个数须相同。
- torch.normal(mean=0.0, std, out=None):与上面函数类似,所有抽取的样本共享均值
- torch.normal(means, std=1.0, out=None):与上面函数类似,所有抽取的样本共享标准差。
连接、切割、去\加1维度、堆叠、转置
- torch.cat(inputs, dimension=0) → Tensor:在给定维度上对输入的张量序列seq 进行连接操作。
- torch.stack(sequence, dim=0):增加新的维度进行堆叠。 dim (int) – 插入的维度。
- torch.split(tensor, split_size, dim=0):按指定维度将输入张量进行分割。split_size (int) – 单个分块的形状大小,最后一个块可能小于前面的块。
- torch.squeeze(input, dim=None, out=None): 将输入张量形状中的1 去除并返回。返回张量与输入张量共享内存
- torch.unsqueeze(input, dim, out=None): 对输入指定的位置插入维度1.
- torch.transpose(input, dim0, dim1, out=None) → Tensor:
(交换维度dim0和dim1。只能交换两个维度。)
- permute(input, dims) → Tensor:dims可以是tuple,可以交换多个维度
(交换多个维度)
随机数种子
- torch.manual_seed(seed): 设定生成随机数的种子,保证每次随机初始化时都一样.
- torch.cuda.manual_seed(int.seed): 为当前GPU设置随机种子.
- torch.cuda.manual_seed_all(int.seed): 为所有GPU设置随机种子.
保存和加载
- torch.save(obj, f, pickle_module, pickle_protocol):只需关注前两个参数。将obj保存到f路径。
- torch.load(f, map_location=None, pickle_module): 加载torch.save()保存的对象,例如:map_location=torch.device(‘gpu’)
数学操作
逐像素操作
- torch.ceil(input, out=None) → Tensor:对输入张量向上取整
- torch.floor(input, out=None) → Tensor:返回张量每个元素的floor
- torch.round(input, out=None) → Tensor:返回一个新张量,将输入input张量每个元素舍入到最近的整数。
归并操作
- torch.numel(input)->int: 返回张量元素的个数.
- torch.sum(input, dim, out=None) → Tensor:返回输入张量给定维度上每行的和。 输出形状与输入相同,除了给定维度上为1.
- torch.mean(input, dim, out=None) → Tensor:返回输入张量给定维度dim上每行的均值。输出形状与输入相同,除了给定维度上为1。
- orch.norm(input, p, dim, out=None) → Tensor:返回输入张量给定维dim 上每行的p 范数。 输出形状与输入相同,除了给定维度上为1.
- torch.std(input, dim, out=None) → Tensor:返回输入张量给定维度上每行的标准差。 输出形状与输入相同,除了给定维度上为1.
- torch.var(input, dim, out=None) → Tensor:返回输入张量给定维度上每行的方差。 输出形状与输入相同,除了给定维度上为1.
- torch.sort(input, dim=None, descending=False, out=None) -> (Tensor, LongTensor)
对输入张量input沿着指定维度升序排序,如果不给定dim,则默认为输入的最后一维,如果指定参数descending = True,则按降序排序,
返回元组 (sorted_tensor, sorted_indices)
sorted_indices为原始输入的下标.
Tensor数据类型
类型转换
- data.numpy():Tensor –> Numpy.ndarray
- torch.from_numpy(data):Numpy.ndarray –> Tensor
CPU和GPU之间的转换
- data.cuda():cpu –> gpu
- data.cpu():gpu –> cpu
Tensor基本数据类型转换
- type(dtype=None, non_blocking=False, **kwargs):指定类型改变。例如data = data.type(torch.float32)
- type_as(tensor):按照给定的tensor的类型转换类型。
总结
慢慢的会自己用到啥,调用什么函数,会将各种的函数都给其调用好都行啦的理由与打算.
慢慢的将各种函数啥的都研究一下,全部都研究彻底,研究透彻.都行啦的理由与打算.