PyTorch 张量数据类型

  • 【数据类型】Python 与 PyTorch 常见数据类型对应:

    a.type() 获取数据类型,用 isinstance(a, 目标类型) 进行类型合法化检测

    python3 复制代码
    >>> import torch
    >>> a = torch.randn(2,3)
    >>> a
    tensor([[-1.7818, -0.2472, -2.0684],
            [ 0.0117,  1.4698, -0.9359]])
    >>> a.type()  ## 获取数据类型
    'torch.FloatTensor'
    >>> isinstance(a, torch.FloatTensor)  ## 类型合法化检测
    True
    >>> 
  • 【什么是张量】标量与张量:用 a.dim(), a.shape 或者 a.size() 查看 dim 为 0 是标量,否则是张量

    python3 复制代码
    >>> import torch
    >>>
    >>> a = torch.tensor(1) 
    >>> a
    tensor(1)
    >>> a.dim()
    >>> 0  ## 标量
    
    >>> a = torch.Tensor([1]) 
    >>> a
    tensor([1.])
    >>> a.dim()
    >>> 1  ## 张量
  • 【生成张量】常见方法如下:

    • 常见随机方法:torch.randn(shape), torch.rand(shape), torch.randint(min, max, shape), torch.rand_like(a), torch.normal(mean, std) ... 具体示例如下

    • Dim 1 / rank 1: 以 size 2 为例

      python3 复制代码
      >>> a = torch.randn(2)   ## 随机,
      >>> a: tensor([1.4785, 0.6089])
      
      >>> a = torch.Tensor(2)   ## 接收维度, unintialized 不推荐
      >>> a: tensor([5.4086e+26, 4.5907e-41])
      >>> a = torch.Tensor([1,2])   ## 同 torch.tensor([1,2]) 接收具体数据
      >>> a: tensor([1, 2])
      
      >>> a = torch.from_numpy(np_data)  ## 数据维持不变,类型一一对应
      
      >>> a = torch.full([2],7)   ## 全部填充为一样的值   
      >>> a: tensor([7, 7])
      
      >>> a = torch.arange(0,10)   ## arange
      >>> a: tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
      
      >>> a = torch.linspace(0,10, steps=4)   ##  
      >>> a: tensor([ 0.0000,  3.3333,  6.6667, 10.0000])
      >>> a = torch.logspace(0,10, steps=4) 
      >>> a: tensor([1.0000e+00, 2.1544e+03, 4.6416e+06, 1.0000e+10])
    • Dim 2 / rank 2: 以 size [2,3] 为例

      python3 复制代码
      >>> a = torch.randn(2, 3)   ## 随机 
      >>> a: tensor([[ 2.0631, -1.7011,  0.6375],
      	    	   [-1.2104, -1.3341, -0.8187]])
      
      >>> a = torch.Tensor(2, 3)   ## 接收维度, unintialized 不推荐   
      >>> a: tensor([[-0.2438, -0.9554, -0.4694],
      			   [ 0.8636,  1.6497, -0.8862]])
      >>> a = torch.Tensor([[1,2,3],[4,5,6]])  ## 同 torch.tensor([[1,2,3],[4,5,6]]) 接收具体数据 
      >>> a: tensor([[1., 2., 3.],
             		   [4., 5., 6.]])
      
      >>> a = torch.from_numpy(np_data)  ## 数据维持不变,类型一一对应
      
      >>> a = torch.full([2,3],7)  ## 全部填充为一样的值
      >>> a: tensor([[7, 7, 7],
                     [7, 7, 7]])

      ...


相关推荐
鹏码纵横1 小时前
已解决:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 异常的正确解决方法,亲测有效!!!
java·python·mysql
仙人掌_lz1 小时前
Qwen-3 微调实战:用 Python 和 Unsloth 打造专属 AI 模型
人工智能·python·ai·lora·llm·微调·qwen3
猎人everest2 小时前
快速搭建运行Django第一个应用—投票
后端·python·django
猎人everest2 小时前
Django的HelloWorld程序
开发语言·python·django
chusheng18402 小时前
2025最新版!Windows Python3 超详细安装图文教程(支持 Python3 全版本)
windows·python·python3下载·python 安装教程·python3 安装教程
别勉.2 小时前
Python Day50
开发语言·python
美林数据Tempodata3 小时前
大模型驱动数据分析革新:美林数据智能问数解决方案破局传统 BI 痛点
数据库·人工智能·数据分析·大模型·智能问数
硅谷秋水3 小时前
NORA:一个用于具身任务的小型开源通才视觉-语言-动作模型
人工智能·深度学习·机器学习·计算机视觉·语言模型·机器人
正儿八经的数字经3 小时前
人工智能100问☞第46问:AI是如何“学习”的?
人工智能·学习
飞哥数智坊3 小时前
别卷提示词了!像带新人一样“带”AI,产出效率翻倍
人工智能