pytorch图像和张量的相互转换_Day107:Pytorch张量类型的构建与相互转换

张量的作用

Pytorch的数据类型为各式各样的Tensor,Tensor可以理解为高维矩阵(与Numpy中的Array类似)

通过使用Type函数可以查看变量类型。一

CPU张量类型

Pytorch中的tensor包括七种CPU张量类型和八种GPU张量类型,这里我们就只讲解一下CPU中的,GPU上的Tensor是CPU上的Tensor加cuda得到,如torch.cuda.FloatTensor:

  1. torch.FloatTensor(2,3) 构建一个2×3 Float类型的张量
  2. torch.DoubleTensor(2,3) 构建一个2×3 Double类型的张量
  3. torch.ByteTensor(2,3) 构建一个2×3 Byte类型的张量
  4. torch.CharTensor(2,3) 构建一个2×3 Char类型的张量
  5. torch.ShortTensor(2,3) 构建一个2×3 Short类型的张量
  6. torch.IntTensor(2,3) 构建一个2×3 Int类型的张量
  7. torch.LongTensor(2,3) 构建一个2×3 Long类型的张量

torch.Tensor是默认的tensor类型(torch.FlaotTensor)的简称,即系统默认的是torch.FloatTensor类型。例如:data = torch.Tensor(2,3)是一个2*3的张量,类型为FloatTensor(使用type()函数可以查看变量类型); data.cuda()就转换为GPU的张量类型,即torch.cuda.FloatTensor类型。

32e63d3316ef319e121489af51419cd3.png

tensor.type()

tensor.type(new_type=None, async=False)

  • 未提供new_type,则返回原先的类型
  • 提供new_type,将此对象转换为指定的类型
  • 已经是正确的类型,则不会执行且返回原对象
data = torch.LongTensor(2, 3)print('data变量的类型:', type(data))print('张量data所属的类型:', data.dtype)   # x的具体类型print(data)# 转换为其他类型data_new = data.type(torch.Tensor)  # torch.FloatTensor==torch.Tensorprint('data变量的类型:', type(data_new))print('张量data所属的类型:', data_new.dtype)   # x的具体类型print(data_new)

结果如下:

1c3c427dd6ccedddf63abb3892f4756e.png

tensor1.type_as(tesnor2)

  • tensor1.type_as(tesnor2)将张量tensor1的类型转换为张量tensor2的类型
  • 如果张量tensor1已经是张量tensor2的类型,则不会执行操作
data1 = torch.Tensor(2, 3)print('data1变量的类型:', type(data1))print('张量data1所属的类型:', data1.dtype)   # x的具体类型print(data1)data2 = torch.IntTensor(2,3)print('data2变量的类型:', type(data2))print('张量data2所属的类型:', data2.dtype)   # x的具体类型print(data2)data_new = data1.type_as(data2)print('data1变量的类型:', type(data_new))print('张量data1所属的类型:', data_new.dtype)   # x的具体类型print(data_new)             # 为什么全为0???
4729eccad08d4c9b9516057d28e000b5.png

参考:https://blog.csdn.net/genous110/article/details/87038787

参考:https://blog.csdn.net/hustchenze/article/details/79154139

图片:https://blog.csdn.net/qq_26369907/article/details/89010672

a5a81e4794fa2e2b1f93d931db559d1f.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472172.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

漂亮的html页面源码_爬虫数据分析之html

1、 htmlhtml 不是一种编程语言,而是一种标记语言,是制作网页所必须的,你在浏览器里看到的每一个页面,不论简单还是复杂,都是用html编写的,包括你现在看到的这篇文章。用html写一个简单的页面,是…

LeetCode 1864. 构成交替字符串需要的最小交换次数

文章目录1. 题目2. 解题1. 题目 给你一个二进制字符串 s ,现需要将其转化为一个 交替字符串 。 请你计算并返回转化所需的 最小 字符交换次数,如果无法完成转化,返回 -1 。 交替字符串 是指:相邻字符之间不存在相等情况的字符串…

【机器学习-数据科学】第三节:数据分析实例 分析MovieLens电影数据

数据分析实例 分析MovieLens电影数据导入数据数据合并按性别查看各个电影的平均评分活跃电影排行榜电影投票数据 grouplens.org/datasets/movielens 把文件放到这个路径下 导入数据 数据合并 按性别查看各个电影的平均评分 查看男女评分差别最大的 按照diff去排序 找出分歧…

vue路由切换组件没有加载_Vue面试题: 如何实现路由懒加载?

非懒加载import List from /components/list.vue const router new VueRouter({routes: [{ path: /list, component: List }] })方案一(常用)const List () > import(/components/list.vue) const router new VueRouter({routes: [{ path: /list, component: List }] })方…

LeetCode 1865. 找出和为指定值的下标对(哈希)

文章目录1. 题目2. 解题1. 题目 给你两个整数数组 nums1 和 nums2 ,请你实现一个支持下述两类查询的数据结构: 累加 ,将一个正整数加到 nums2 中指定下标对应元素上。计数 ,统计满足 nums1[i] nums2[j] 等于指定值的下标对 (i,…

聚类算法 距离矩阵_快速且不需要超参的无监督聚类方法

论文: Efficient Parameter-free Clustering Using First Neighbor RelationsEfficient Parameter-free Clustering Using First Neighbor Relations​arxiv.org代码:https://github.com/ssarfraz/FINCH-Clustering​github.com此文是CVPR2019的oral文章…

服务器不知别内存_图文版 许迎果第63期 选购和使用内存需要注意的点

其实要说清楚内存的方方面面还是要颇费一番功夫的.内存的起源和发展历程估计要讲一期,内存厂商,颗粒,品牌也需要单独讲一期,内存超频也要单独讲一期.内存看似简单,但要说的内容却是很多的.所以为了节省各位小伙伴的时间,我会尽量精简,只讲对大多数人都比较实用的部分.本期大体上…

LeetCode 1877. 数组中最大数对和的最小值(贪心)

文章目录1. 题目2. 解题1. 题目 一个数对 (a,b) 的 数对和 等于 a b 。最大数对和 是一个数对数组中最大的 数对和 。 比方说,如果我们有数对 (1,5) ,(2,3) 和 (4,4),最大数对和 为 max(15, 23, 44) max(6, 5, 8) 8 。 给你一个长度为 偶…

小程序多个echars_小程序界面与逻辑

主要内容数据绑定、渲染、界面层数据渲染和事件处理。一、数据绑定1.1 渲染层和逻辑层小程序宿主环境我们称微信客户端给小程序所提供的环境为宿主环境。小程序借助宿主环境提供的能力,可以完成许多普通网页无法完成的功能。小程序开发框架的目标是通过尽可能简单、…

LeetCode 1876. 长度为三且各字符不同的子字符串

文章目录1. 题目2. 解题1. 题目 如果一个字符串不含有任何重复字符,我们称这个字符串为 好 字符串。 给你一个字符串 s ,请你返回 s 中长度为 3 的 好子字符串 的数量。 注意,如果相同的好子字符串出现多次,每一次都应该被记入…

numpy维度交换_数据分析-gt;基本操作numpy(1)

1.Numpy介绍与安装Numpy是什么?Numpy(Numerical Python)是目前Python数值计算中最为重要的基础包。大多数计算包都提供了基于Numpy的科学函数功能,将Numpy的数组对象作为数据交换的通用语。Numpy特点提供高效多维数组提供了基于数组的便捷算术操作以及广…

C#学习记录3上——类的封装,继承,多态

OOP面向对象的三大特点:封装(encapsulation),继承(inheritance),多态(encapsulation) 和JAVA与C一样,C#也是OOP语言。并且,C#对数据的封装要比C更…

LeetCode 1878. 矩阵中最大的三个菱形和(模拟)

文章目录1. 题目2. 解题1. 题目 给你一个 m x n 的整数矩阵 grid 。 菱形和 指的是 grid 中一个正菱形 边界 上的元素之和。 本题中的菱形必须为正方形旋转45度,且四个角都在一个格子当中。 下图是四个可行的菱形,每个菱形和应该包含的格子都用了相应颜…

计算尖峰电流的目的_入门必看!负荷计算的目的、方法以及原则详解

感谢关注【易筑电气】,我们会定期为您推送最新的电气资讯和各类实用干货,欢迎有料的电气设计师加入我们的QQ交流群:571819142。想了解我们的线上讲师招募计划?添加QQ:3335847624 开启新世界~负荷计算目的和意义低压供配…

上下伸缩代码_CQRS之旅——旅程4(扩展和增强订单和注册限界上下文)

旅程4:扩展和增强订单和注册限界上下文进一步探索订单和注册的有界上下文。“我明白,如果一个人想看些新鲜的东西,旅行并不是没有意义的。”儒勒凡尔纳,环游世界80天对限界上下文的更改:前一章详细描述了订单和注册限界…

LeetCode 1879. 两个数组最小的异或值之和(状态压缩DP)

文章目录1. 题目2. 解题2.1 回溯2.2 状态压缩DP1. 题目 给你两个整数数组 nums1 和 nums2 ,它们长度都为 n 。 两个数组的 异或值之和 为 (nums1[0] XOR nums2[0]) (nums1[1] XOR nums2[1]) ... (nums1[n - 1] XOR nums2[n - 1]) (下标从 0 开始&am…

二叉排序树的后序遍历序列必然是递增的_剑指offer 33——二叉搜索树的后序遍历序列...

本题主要在于考察对二叉搜索树和后序遍历的理解。原题输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树:5 / 2 6…

LeetCode 1880. 检查某单词是否等于两单词之和

文章目录1. 题目2. 解题1. 题目 字母的 字母值 取决于字母在字母表中的位置,从 0 开始 计数。即,a -> 0、b -> 1、c -> 2,以此类推。 对某个由小写字母组成的字符串 s 而言,其 数值 就等于将 s 中每个字母的 字母值 按…

查询去除空值_SQL数据处理(五):SQL多表查询

一. 表的加法加法(union)。合并两张数据表course和course1/去除重复行重合【select 课程号,课程名称 from course union select 课程号,课程名称 from course1;】 输出结果两个表合并的数据若要保留重复的行数据(union all)【select 课程号,课程名称 from course union all sel…

WPS Office文档未保存怎么恢复

有时候用WPS Office时,文档还没保存,因为电脑卡死或者关机,再次打开时编辑的内容都不见了,这个时候可以利用WPS自带的备份功能来恢复文档,表格、幻灯片、文档都是可以的。 首先单击WPS左上角的按钮,选择&qu…