【pytorch常用方法汇总】张量的转换、生成篇

目录

将列表转换为张量

  1. Python的列表或序列可以通过torch.tensor()函数构造张量。

  2. 查看维度和元素数量:

    x = torch.tensor([[1, 2, 3], [4, 5, 6]])

    • 查看维度:x.shapex.size(),返回torch.Size类型对象,可以直接解包
    • 查看元素数量:x.numel()
  3. 指定元素类型、分配的位置以及是否计算梯度:

    x = torch.tensor([[1, 2, 3], [4, 5, 6]], dtype=torch.float, device="cuda:0", requires_grad=True)

张量和Numpy数组的相互转化

  1. 利用NumPy数组生成tensor

    torch.from_numpy(ndarray) → Tensor

    将 numpy.ndarray 转换为 pytorch 的 Tensor。返回的张量 tensor 和 numpy的 ndarray 共享同一内存空间。修改一个会导致另外一个也被修改。返回的张量不能改变大小。

  2. tensor转化为numpy数组

    x.numpy() → ndarray

    将该 tensor 以 NumPy 的形式返回 ndarray,两者共享相同的底层内存。

随机数生成张量

  1. 生成随机数前,可以使用torch.manual_seed()函数,指定随机数种子,保证生成的随机数可以重复出现。在每次重新运行程序时,同样的随机数生成代码得到的是同样的结果。

  2. torch.rand(*sizes, out=None) → Tensor

    返回一个张量,包含了从区间[0,1)的均匀分布中抽取的一组随机数,形状由可变参数sizes 定义。

  3. torch.randn(*sizes, out=None) → Tensor

    返回一个张量,包含了从标准正态分布(均值为 0,方差为 1)中抽取一组随机数,形状由可变参数 sizes 定义。

  4. torch.normal(means, std, out=None) → Tensor

    返回一个张量,包含从给定参数 means,std 的离散正态分布中抽取随机数。

    均值 means 是一个张量,包含每个输出元素相关的正态分布的均值。

    std 是一个张量,包含每个输出元素相关的正态分布的标准差。 均值和标准差的形状不须匹配,但每个张量的元素个数须相同。

生成特定的张量

  1. torch.arange(start, end, step=1, out=None) → Tensor

    返回一个 1 维张量,长度为 floor((end−start)/step)。包含在半开区间 [start, end),以 step 为步长的一组序列值(默认步长为 1)。

  2. torch.linspace(start, end, steps=100, out=None) → Tensor

    返回一个 1 维张量,包含在区间 start 和 end 上均匀间隔的 step 个点,默认左右均为闭区间, 输出 1 维张量的长度为steps。

  3. torch.zeros(*sizes, out=None) → Tensor

    返回一个全为标量 0 的张量,形状由可变参数 sizes 定义。

    sizes (int...) -- 整数序列,定义了输出形状

    out (Tensor, optional) -- 结果张量

  4. torch.ones(*sizes, out=None) → Tensor

    返回一个全为 1 的张量,形状由可变参数 sizes 定义。

    参数同上

  5. torch.eye(n, m=None, out=None)→ Tensor

    返回一个 2 维张量,对角线位置全 1,其它位置全 0

    n (int) -- 行数

    m (int, optional) -- 列数:如果为 None,则默认为 n

    out (Tensor, optinal) - Output tensor

相关推荐
ltqvibe23 分钟前
企业AI改造的四层路径:从点上应用到企业大脑
大数据·人工智能·本体语义平台·企业ai改造·数据打通·企业大脑·企业认知基础设施
anxiao_m26 分钟前
园区数字孪生怎么搭建?主流方案与服务商深度对比
大数据·运维·人工智能
Eric.4629 分钟前
AI漫剧量产Prompt参数实操手册:Stable Diffusion+ComfyUI+OpenClaw通用复制即用配置
人工智能·深度学习·stable diffusion·prompt·ai漫剧
Eric.4633 分钟前
OpenClaw 结合 Stable Diffusion 与 ComfyUI 实现本地离线 AI 漫剧全自动流水线|批量渲染、人设一致性、帧闪烁问题工程实践
人工智能·stable diffusion·comfyui·ai漫剧
Splashtop高性能远程控制软件1 小时前
AI 落地的连接基建评估:消费品行业远程连接方案的四个技术维度(性能 / 精度 / 安全 / 统一管理)
运维·人工智能·安全·远程工作·splashtop
张龙6871 小时前
uv 全面指南:比 pip 快 100 倍的 Python 包管理器,从安装到团队落地
后端·python
AIkk861 小时前
手机释放内存用什么工具方便?2026全平台工具实测科普
人工智能
阿里云大数据AI技术1 小时前
从 VDBBench 到 MMEB 榜首:阿里云 AI Search 从引擎到模型的全栈优化
人工智能·elasticsearch·agent
@HNUSTer2 小时前
Python数据可视化科技图表绘制系列教程(八)
python·数据可视化·科技论文·专业制图·科研图表