zoukankan      html  css  js  c++  java
  • 【pytorch】学习笔记(一)-张量

    pytorch入门

    什么是pytorch

    PyTorch 是一个基于 Python 的科学计算包,主要定位两类人群:

    • NumPy 的替代品,可以利用 GPU 的性能进行计算。
    • 深度学习研究平台拥有足够的灵活性和速度

    张量

    Tensors 类似于 NumPy 的 ndarrays ,同时 Tensors 可以使用 GPU 进行计算。

    张量的构造

    构造全零矩阵

    1.导入

    from __future__ import  print_function
    import torch
    

    2.构造一个5x3矩阵,不初始化。

    x=torch.empty(5,3)
    print(x)
    

    3.输出

    tensor([[0., 0., 0.],
            [0., 0., 0.],
            [0., 0., 0.],
            [0., 0., 0.],
            [0., 0., 0.]])
    
    

    构造随机初始化矩阵

    x=torch.rand(5,3)
    print(x)
    

    构造指定类型的矩阵

    构造一个矩阵全为 0,而且数据类型是 long.

    Construct a matrix filled zeros and of dtype long:

    from __future__ import  print_function
    import torch
    
    x = torch.zeros(5, 3, dtype=torch.long)
    print(x)
    

    使用数据创建张量

    x=torch.tensor([5.5,3])
    print(x)
    
    tensor([5.5000, 3.0000])
    

    根据已有的tensor来创建tensor

    x=torch.tensor([5.5,3])
    print(x)
    x=x.new_ones(5,3,dtype=torch.double)
    print(x)
    # 覆盖类型
    x=torch.rand_like(x,dtype=torch.float)
    
    # 结果具有相同的大小
    print(x)
    
    #输出自己的维度
    print(x.size())
    
    

    结果

    tensor([[1., 1., 1.],
            [1., 1., 1.],
            [1., 1., 1.],
            [1., 1., 1.],
            [1., 1., 1.]], dtype=torch.float64)
    tensor([[0.6122, 0.4650, 0.7017],
            [0.6148, 0.9167, 0.0879],
            [0.2891, 0.5855, 0.1947],
            [0.3554, 0.2678, 0.5296],
            [0.6527, 0.9537, 0.3847]])
    torch.Size([5, 3])
    

    张量的操作

    张量加法

    方式一

    y=torch.rand(5,3);
    print(x+y)
    
    tensor([[0.7509, 1.1579, 0.1261],
            [0.6551, 1.0985, 0.4284],
            [1.4595, 0.9757, 1.2582],
            [1.0690, 0.7405, 1.7367],
            [0.6201, 1.3876, 0.8193]])
    

    方式二

    print(torch.add(x,y))
    
    tensor([[0.8122, 1.0697, 0.8380],
            [1.4668, 0.2371, 1.0734],
            [0.9489, 1.3252, 1.2579],
            [0.7728, 1.4361, 1.5713],
            [0.7098, 0.9440, 0.4296]])
    

    方式三

    print(y.add_(x))
    

    注意

    注意 任何使张量会发生变化的操作都有一个前缀 '_'。例如:
    x.copy_(y)
    , 
    x.t_()
    , 将会改变 
    x
    
    

    索引操作

    print(x[:,1])
    
    tensor([0.1733, 0.5943, 0.9015, 0.1385, 0.2001])
    

    改变大小

    import torch
    
    x=torch.rand(4,4)
    y=x.view(16)
    z=x.view(-1,8)#-1是不用填从其他的维度推测的
    print(x.size(),y.size(),z.size())
    
    torch.Size([4, 4]) torch.Size([16]) torch.Size([2, 8])
    

    获取值

    import torch
    x=torch.rand(1)
    print(x)
    print(x.item())
    
    tensor([0.5210])
    0.5209894180297852
    

    学习自http://pytorch123.com/SecondSection/what_is_pytorch/

  • 相关阅读:
    把chrome的多微博插件FaWave变成桌面程序!
    处理数据源控件中发生的错误
    sql server数据类型char和nchar,varchar和nvarchar,text和ntext的区别
    strutsconfigxml中contextRelative=true是什么
    sql在不同数据库查询前几条数据
    java取四舍五入的方法
    struts上传文件异常argument type mismatch
    Struts 配置文件里面 Controller是什么意思
    java.lang.NoClassDefFoundError: org/hibernate/cfg/HbmBinder$SecondPass解决办法
    访问servlet时弹出文件下载框错误解决
  • 原文地址:https://www.cnblogs.com/mengxiaoleng/p/11772812.html
Copyright © 2011-2022 走看看