• pytorch入门


    参考   pytorch入门 - 云+社区 - 腾讯云

    1、Tensor(张量)

    Pytorch里面处理的最基本的操作对象就是Tensor,Tensor是张量的英文,表示的是一个多维的矩阵,比如零维就是一个点,一维就是向量,二维就是一般的矩阵,多维就相当于一个多维的数组,这和numpy是对应的,而且Pytorch的Tensor可以和numpy的ndarray相互转换,唯一不同的是Pytorch可以在GPU上运行,而numpy的ndarray只能在CPU上运行。

    我们先介绍一下一些常用的不同数据类型的Tensor,有32位浮点型torch.Float Tensor、64位浮点型torch.DoubleTensor、16位整型torch.Shor tTensor、32位整型 torch.IntTensor和64位整型torch.LongTensor。我们可以通过下面这样的方式来定义一个三行两列给定元素的矩阵,并且显示出矩阵的元素和大小:

    1. a = torch.Tensor([[2, 3],[4, 8],[7, 9]])
    2. print('a is: {}'.format(a))
    3. print('a size is {}'.foramt(a.size()))

    需要注意的是 torch.Tensor默认的是torch.FloatTensor数据类型,也可以定义我们想要的数据类型,就像下面这样:

    1. b = torch.LongTensor([[2, 3],[4, 8],[7, 9]])
    2. print('b is : {}'.foramt(b))

    当然也可以创建一个全是0的空Tensor或者取一个正太分布作为随机初始值:

    1. c = torch.zeros((3, 2))
    2. print('zero tensor: {}'.foramt())
    3. d = torch.randn((3,2))
    4. print('noraml randon is : {}'.foramt(d))

    我们也可以像numpy一样通过索引的方式取得其中的元素,同时也可以改变它的值,比如将a的第一行第二列改变为100。

    1. a[0, 1] = 100
    2. print('changed a is: {}'.format(a))

    除此之外,还可以在Tensor与numpy.ndarray之间相互转换:

    1. numpy_b = b.numpy()
    2. print('cover to many is \n {}'.foramt(numpy_b))
    3. e = np.array([[2, 3],[4, 5]])
    4. torch_e = torch.from_numpy(e)
    5. print('from numpy tp torch.Tensor is {}'.format(torch_e))
    6. f_torch_e = torch_e.float()
    7. print('change data type to float tensor:
  • 相关阅读:
    Leetcode——岛屿的最大面积
    Java集合中常见的面试题
    springboot物流配货管理系统java
    【python基础4】
    AirTest
    vue2 vue3 各传值汇总
    坚不可摧!腾讯安全设三道防线,一站式护航云上安全
    数组和对象的解构
    深度学习-BN(Batch Normalization)
    GetKeyState获取键盘状态(原神水龙王转转转)
  • 原文地址:https://blog.csdn.net/weixin_36670529/article/details/100130789