Torch包学习

1. 创建

  • torch.from_numpy(ndarray) → Tensor:将numpy.ndarray 转换为pytorch的 Tensor。两者共享内存。返回的张量不能改变大小。
  • torch.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 的随机整数排列。
  • torch.normal(means, std, out=None):均值means是一个张量,包含每个输出元素相关的正态分布的均值。std是一个张量,包含每个输出元素相关的正态分布的标准差。均值和标准差的形状不须匹配,但每个张量的元素个数须相同。
  • torch.normal(mean=0.0, std, out=None):与上面函数类似,所有抽取的样本共享均值。
  • torch.normal(means, std=1.0, out=None):与上面函数类似,所有抽取的样本共享标准差。

2. 连接、切割、去\加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,可以交换多个维度。

3. 随机数种子

  • torch.manual_seed(seed):设定生成随机数的种子。保证每次随机初始化时都一样。
  • torch.cuda.manual_seed(int.seed):为当前GPU设置随机种子
  • torch.cuda.manual_seed_all(int.seed):为所有的GPU设置种子

4. 保存和加载

  • 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')

5. 数学操作

5.1 逐像素操作

  • torch.abs(input, out=None) → Tensor
  • torch.atan(input, out=None) → Tensor:输出反正切,范围为 [ − π / 2 , π / 2 ] [-\pi/2, \pi/2] [π/2,π/2]
  • torch.atan2(input1, input2, out=None) → Tensor:输出给定的 input1 及 input2 坐标值的反正切值,范围为 [ − π , π ] [-\pi, \pi] [π,π]
  • torch.ceil(input, out=None) → Tensor:对输入张量向上取整
  • torch.floor(input, out=None) → Tensor:返回张量每个元素的floor
  • torch.round(input, out=None) → Tensor:返回一个新张量,将输入input张量每个元素舍入到最近的整数。
  • torch.clamp(input, min, max, out=None) → Tensor:将张量元素夹紧到区间[min,max]
  • torch.exp(tensor, out=None) → Tensor
  • torch.log(input, out=None) → Tensor:计算自然对数
  • torch.pow(input, exponent, out=None):
  • torch.sigmoid(input, out=None) → Tensor
  • torch.sign(input, out=None) → Tensor:符号函数,返回+1和-1
  • torch.sqrt(input, out=None) → Tensor
  • torch.trunc(input, out=None) → Tensor:小数部分被舍弃

5.2 归并操作

  • torch.numel(input)->int:返回张量的元素个数。
  • torch.sum(input, dim, out=None) → Tensor:返回输入张量给定维度上每行的和。 输出形状与输入相同,除了给定维度上为1.
  • torch.mean(input, dim, out=None) → Tensor:返回输入张量给定维度dim上每行的均值。输出形状与输入相同,除了给定维度上为1。
  • torch.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.

5.3 比较操作和排序

  • torch.max(input) → float:返回输入张量所有元素的最大值。
  • torch.max(input, dim, max=None, max_indices=None) -> (Tensor, LongTensor):返回输入张量给定维度上每行的最大值,并同时返回每个最大值的位置索引。
  • torch.min(input) → float:返回输入张量所有元素的最小值。
  • torch.min(input, dim, min=None, min_indices=None) -> (Tensor, LongTensor)
  • torch.sort(input, dim=None, descending=False, out=None) -> (Tensor, LongTensor):对输入张量input沿着指定维按升序排序。如果不给定dim,则默认为输入的最后一维。如果指定参数descending为True,则按降序排序。返回元组 (sorted_tensor, sorted_indices) , sorted_indices 为原始输入中的下标。

5.4 矩阵分析

  • torch.eig(a, eigenvectors=False, out=None) -> (Tensor, Tensor):计算实方阵a 的特征值和特征向量
  • torch.svd(input, some=True, out=None) -> (Tensor, Tensor, Tensor):U,S,V=torch.svd(A),奇异值分解。
  • torch.inverse(input, out=None) → Tensor:对方阵输入input 取逆。
  • torch.mm(mat1, mat2, out=None) → Tensor:对矩阵mat1和mat2进行相乘。
  • torch.mv(mat, vec, out=None) → Tensor:对矩阵mat和向量vec进行相乘。

6. Tensor数据类型

在这里插入图片描述

6.1 类型转换

  • CPU和GPU的Tensor之间转换
    • data.cuda():cpu –> gpu
    • data.cpu():gpu –> cpu
  • Tensor与Numpy Array之间的转换
    • data.numpy():Tensor –> Numpy.ndarray
    • torch.from_numpy(data):Numpy.ndarray –> Tensor
  • Tensor的基本类型转换
    • tensor.long():
    • tensor.half():将tensor投射为半精度浮点(16位浮点)类型
    • tensor.int():
    • tensor.double():
    • tensor.float():
    • tensor.char():
    • tensor.byte():
    • tensor.short():
  • Tensor的基本数据类型转换
    • type(dtype=None, non_blocking=False, **kwargs):指定类型改变。例如data = data.type(torch.float32)
    • type_as(tensor):按照给定的tensor的类型转换类型。
  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在 Python 中安装 PyTorch,请打开命令行并运行以下命令: ``` pip install torch ``` 如果要安装特定版本,可以在命令中指定版本号,如: ``` pip install torch==1.7.0 ``` 如果要在 CUDA 支持的 GPU 上运行 PyTorch,还需要安装 CUDA 和 torchvision。 ``` pip install torch torchvision torchaudio torchtext ``` 注意: 需要根据你的 python 版本和系统环境使用 pip3 或者 python -m pip 来代替 pip. ### 回答2: 要安装torch,首先需要确认你的计算机上是否已经安装了Python环境。如果已经安装了Python,可以按照以下步骤来安装torch: 1. 打开终端或命令提示符,输入以下命令来安装torch: ``` pip install torch ``` 2. 等待安装完成。这可能需要一些时间,取决于你的互联网连接速度以及计算机的性能。 3. 安装完成后,可以在Python中导入torch来验证是否成功安装。在Python解释器或任何Python编辑器中,输入以下命令来导入torch: ```python import torch ``` 4. 如果没有出现任何错误提示,说明torch已经成功安装并可以使用了。 如果在安装torch时遇到了问题,可能是由于计算机上缺少一些依赖库或版本不兼容。这种情况下,可以根据具体的错误信息来解决问题,或者尝试使用其他的安装方法,如使用conda来安装torch。 ### 回答3: 要安装torch,可以按照以下步骤进行操作: 1. 首先,你需要确保你的电脑已经安装了Python。如果没有安装,可以去Python官网(https://www.python.org)下载安装最新版的Python。 2. 然后,你需要安装管理工具pip。pip是Python官方推荐的安装Python的工具。在终端中输入以下命令来安装pip: ``` $ python get-pip.py ``` 3. 接下来,打开终端,并使用pip来安装torch。在终端中输入以下命令来安装torch: ``` $ pip install torch ``` 4. 等待一段时间,pip会自动下载并安装最新版的torch。 5. 安装完成后,你可以在Python脚本中导入torch,并开始使用它了。在Python脚本的开头添加以下代码: ``` import torch ``` 通过以上步骤,你就成功安装了torch。你可以在自己的Python脚本中使用torch来进行深度学习的相关操作了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值