搜索

查看: 3131|回复: 11

[Python] Pytorch数据类型与转换(torch.tensor,torch.FloatTensor)

[复制链接]
发表于 2023-5-4 17:22:33 | 显示全部楼层 |阅读模式
Editor 2023-5-4 17:22:33 3131 11 看全部
目录
  • Pytorch数据类型与转换(torch.tensor,torch.FloatTensor)
  • 一、torch.tensor
  • 二、torch.FloatTensor
  • 扩展:Pytorch数据类型转换
  • 1. Pytorch上的数据类型
  • 2. 数据类型之间的转换
  • 3. cuda数据类型,cpu类型和一般的数据类型
  • 逻辑值True和False转成0和1. +0
    Pytorch数据类型与转换(torch.tensor,torch.FloatTensor)
    之前遇到转为tensor转化为浮点型的问题,今天整理下,我只讲几个我常用的,如果有更好的方法,欢迎补充

    一、torch.tensor
    1.首先讲下torch.tensor,默认整型数据类型为torch.int64,浮点型为torch.float32

    20230221152109145.png

    20230221152109145.png


    2.这是我认为平常最爱用的转数据类型的方法,可以用dtype去定义数据类型

    20230221152109146.png

    20230221152109146.png


    二、torch.FloatTensor
    1.这个函数不要乱用,首先它可以将变量转化为浮点型32位,这里注意此时的变量类型为列表,或数组等,此时参数为单个变量

    20230221152109147.png

    20230221152109147.png


    2.当函数参数为整形时,表示生成矩阵的维度,此时参数可以为多个变量

    20230221152110148.png

    20230221152110148.png


    补充:还有一种方法通过numpy数组定义数据类型,再转化为tensor,这个方法不多讲了。

    扩展:Pytorch数据类型转换
    1. Pytorch上的数据类型
    Pytorch的类型可以分为CPU和GPU上的Tensor, 它们拥有的数据类型是基本上是一样的:
  • tensor.FloatTensor
  • tensor.LongTensor
  • tensor.ByteTensor
  • tensor.CharTensor
  • tensor.ShortTensor
  • tensor.IntTensor
  • torch.LongTensor
    其中torch.Tensor是默认的tensor.FloatTensor的简称。

    2. 数据类型之间的转换
    tensor = torch.Tensor(3, 5)
    ## torch.long() 将tensor投射为long类型:
    newtensor = torch.long()
    ## torch.int()将该tensor投射为int类型:
    newtensor = torch.int()
    ## torch.double()将该tensor投射为double类型:
    newtensor = torch.double()
    一般,只要在Tensor后加long(), int(), double(), float(), byte()等函数就能将Tensor的类型进行转换
    除此之外,可以使用type()函数,data为Tensor数据类型,data.type()给出data的类型,如果使用data.type(torch.FloatTensor)则强制转换为torch.FloatTensor类型的张量, 如果不知道什么类型,可以使用tensor_1.type_as(tensor_2), 将tensor_1转换成tensor_2。
    self = torch.LongTensor(3, 5)
    # 转换为其他类型
    print self.type(torch.FloatTensor)
    3. cuda数据类型,cpu类型和一般的数据类型
  • 如果没有特别说明:tensor是cpu上的变量
  • 使用gpu张量:tensor.cuda()
  • 使用cpu张量:tensor.cpu()
  • Variable转换成普通的Tensor: variable.data()
  • Tesnor转换成numpy array的格式:tensor.numpy()
  • numpy数据转换成Tensor: torch.from_numpy(np_data)
  • Tensor转换成Variable: Variable(tensor)
    Pytorch数据类似pytorch中的tensor, 更重要的是tensor可以使用GPU来加速,并且变成Variable可以实现自动求导的功能,Variable是对Tensor对象的封装。
    转载链接:https://www.jianshu.com/p/eb7c6af28922

    逻辑值True和False转成0和1. +0
    print(y)
    print(y+0)
    ## 输出结果
    tensor([ True, False, False,  True,  True, False, False,  True,  True, False])
    tensor([1, 0, 0, 1, 1, 0, 0, 1, 1, 0])
    到此这篇关于Pytorch数据类型转换(torch.tensor,torch.FloatTensor)的文章就介绍到这了,更多相关Pytorch数据类型转换内容请搜索知鸟论坛以前的文章或继续浏览下面的相关文章希望大家以后多多支持知鸟论坛
  • 回复

    使用道具 举报

    发表于 2023-6-28 17:32:44 | 显示全部楼层
    惜颜705 2023-6-28 17:32:44 看全部
    论坛不能没有像楼主这样的人才啊!我会一直支持知鸟论坛
    回复

    使用道具 举报

    发表于 2023-6-29 01:18:44 | 显示全部楼层
    123456865 2023-6-29 01:18:44 看全部
    感谢楼主的无私分享!要想知鸟论坛好 就靠你我他
    回复

    使用道具 举报

    发表于 2023-6-29 12:49:34 | 显示全部楼层
    普通人物怨 2023-6-29 12:49:34 看全部
    感谢楼主的无私分享!要想知鸟论坛好 就靠你我他
    回复

    使用道具 举报

    发表于 2023-6-29 22:05:27 | 显示全部楼层
    计划你大爷计j 2023-6-29 22:05:27 看全部
    楼主,大恩不言谢了!知鸟论坛是最棒的!
    回复

    使用道具 举报

    发表于 2023-6-29 23:22:29 | 显示全部楼层
    执着等待等wc 2023-6-29 23:22:29 看全部
    我看不错噢 谢谢楼主!知鸟论坛越来越好!
    回复

    使用道具 举报

    发表于 2023-6-29 23:29:33 | 显示全部楼层
    哈哈SE7 2023-6-29 23:29:33 看全部
    楼主,我太崇拜你了!我想我是一天也不能离开知鸟论坛
    回复

    使用道具 举报

    发表于 2023-6-30 01:02:35 | 显示全部楼层
    小妖花满楼满fx 2023-6-30 01:02:35 看全部
    楼主,我太崇拜你了!我想我是一天也不能离开知鸟论坛
    回复

    使用道具 举报

    发表于 2023-6-30 02:20:45 | 显示全部楼层
    知足常乐77 2023-6-30 02:20:45 看全部
    楼主,大恩不言谢了!知鸟论坛是最棒的!
    回复

    使用道具 举报

    发表于 2023-7-3 08:27:49 | 显示全部楼层
    风吹吹蛋蛋疼风w 2023-7-3 08:27:49 看全部
    这东西我收了!谢谢楼主!知鸟论坛真好!
    回复

    使用道具 举报

    • 您可能感兴趣
    点击右侧快捷回复 【请勿灌水】
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则 返回列表

    RSS订阅| SiteMap| 小黑屋| 知鸟论坛
    联系邮箱E-mail:zniao@foxmail.com
    快速回复 返回顶部 返回列表