pytorch中tensor张量数据类型的转化方式
作者:|晴天| 发布时间:2022-03-19 20:07:24
标签:pytorch,tensor,张量,类型转化
1.tensor张量与numpy相互转换
tensor ----->numpy
import torch
a=torch.ones([2,5])
tensor([[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]])
# **********************************
b=a.numpy()
array([[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]], dtype=float32)
numpy ----->tensor
import numpy as np
a=np.ones([2,5])
array([[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]])
# **********************************
b=torch.from_numpy(a)
tensor([[1., 1., 1., 1., 1.],
[1., 1., 1., 1., 1.]], dtype=torch.float64)
2.tensor张量与list相互转换
tensor—>list
a=torch.ones([1,5])
tensor([[1., 1., 1., 1., 1.]])
# ***********************************
b=a.tolist()
[[1.0, 1.0, 1.0, 1.0, 1.0]]
list—>tensor
a=list(range(1,6))
[1, 2, 3, 4, 5]
# **********************************
b=torch.tensor(a)
tensor([1, 2, 3, 4, 5])
3.tensor张量见类型转换
构建一个新的张量,你要转变成不同的类型只需要根据自己的需求选择即可
tensor = torch.Tensor(3, 5)
# torch.long() 将tensor投射为long类型
newtensor = tensor.long()
# torch.half()将tensor投射为半精度浮点类型
newtensor = tensor.half()
# torch.int()将该tensor投射为int类型
newtensor = tensor.int()
# torch.double()将该tensor投射为double类型
newtensor = tensor.double()
# torch.float()将该tensor投射为float类型
newtensor = tensor.float()
# torch.char()将该tensor投射为char类型
newtensor = tensor.char()
# torch.byte()将该tensor投射为byte类型
newtensor = tensor.byte()
# torch.short()将该tensor投射为short类型
newtensor = tensor.short()
4.type_as() 将张量转换成指定类型张量
>>> a=torch.Tensor(2,5)
>>> a
tensor([[1.9431e-19, 4.8613e+30, 1.4603e-19, 2.0704e-19, 4.7429e+30],
[1.6530e+19, 1.8254e+31, 1.4607e-19, 6.8801e+16, 1.8370e+25]])
>>> b=torch.IntTensor(1,2)
>>> b
tensor([[16843009, 1]], dtype=torch.int32)
>>> a.type_as(b)
tensor([[ 0, -2147483648, 0, 0, -2147483648],
[-2147483648, -2147483648, 0, -2147483648, -2147483648]],
dtype=torch.int32)
>>> a
tensor([[1.9431e-19, 4.8613e+30, 1.4603e-19, 2.0704e-19, 4.7429e+30],
[1.6530e+19, 1.8254e+31, 1.4607e-19, 6.8801e+16, 1.8370e+25]])
来源:https://blog.csdn.net/qq_40357974/article/details/101697721


猜你喜欢
- “ 这是MySQL系列笔记的第十三篇,文章内容均为本人通过实践及查阅资料相关整理所得,可用作新手入门指南,或者
- 在ASP.net页面中,我们编写JavaScript脚本附加有注释时,这些注释也往往会随JavaScript脚本一起送到客户端。
- 实例如下:import urllib.requestimport urllib.parseimport jsonwhile True: &n
- python上传时,包含boundary时的处理方式 img_url = [] upload_pic_url = &
- MySQL 日期类型:日期格式、所占存储空间、日期范围 比较。 日期类型 &nbs
- 官网文档http://www.yiiframework.com/doc-2.0/guide-structure-assets.htmlyii
- 很多人在查看SQL语句等待的时候都是通过sys.dm_exec_requests查看,等待类型也是通过wait_type得出,sys.dm_
- 一、Go语言中Goroutine的基本原理Go语言里的并发指的是能让某个函数独立于其他函数运行的能力。Go语言的goroutine是一个独立
- explain用于获取查询执行计划信息,一、语法只需要在select前加上explain即可,如:mysql> explain sel
- 列表渲染 key 的原理和作用key就是为该节点做身份标识,如果对key绑定index的值,那么很容易出现问题:1.若对数据进行:逆序添加、
- 一、概述SQL SERVER2012 之前版本,一般采用GUID或者IDENTITY来作为标示符。在2012中,微软终于增加了 SEQUEN
- var header1 = document.getElementById("header"); var p = doc
- C# 连接oracle数据库常用的三种方法有三种:一、Oracle.ManagedDataAccess.dll:Oracle官方提供的ora
- python中return不返回值是因为你没有将返回的值取出来。解决方法:调用函数,将函数的返回值赋给一个变量,输出这个变量就可以看到函数的
- Allure除了具有Pytest基本状态外,其他几乎所有功能也都支持。1、严重性如果你想对测试用例进行严重等级划分,可以使用@allure.
- Oracle的逻辑运算符也是用在SQL语句中必不可少的因素,一共有三个逻辑运算符意义and双值运算符,如果左右两个条件都为真,则得到的值就为
- 一、var声明的变量会挂载在window上,而let和const声明的变量不会:var a = 100;console.log(a,wind
- 需求:统计列表list1中元素3的个数,并返回每个元素的索引list1 = [3, 3, 8, 9, 2, 10, 6, 2, 8, 3,
- 朴素贝叶斯估计朴素贝叶斯是基于贝叶斯定理与特征条件独立分布假设的分类方法。首先根据特征条件独立的假设学习输入/输出的联合概率分布,然后基于此
- 采用numpy快速将两个矩阵或数组合并成一个数组:import numpy as np数组a = [[1,2,3],[4,5,6]]b =