pytorch替换numpy中的一些组件 //转载请注明来源
numpy可以同时处理两种数据:list和numpy.ndarray。
而torch只能处理张量(Tensor)数据。
1.替换 np.asarray()
import torch
data=[[1,2],[3,4]]
data = torch.Tensor(data)
# data = np.asarray(data)
print(data.shape)
2.替换 nn.prod()
#使用torch.prod()替换nn.prod(),其中torch.prod()里面的参数必须得是tensor.
import torch
data=[1,2]
data = torch.Tensor(data)
print(data.shape)
c = torch.prod(data)
c
tensor(2.)
Python torch.prod实例讲解 - 码农教程
3.替换 np.max()
#使用torch.max()替换np.max(),其中torch.max()里面的参数必须得是tensor.
import torch
data=[1,2,3,9,4]
data = torch.Tensor(data)
a = torch.max(data)
a
tensor(9.)
4.torch.Size转换为np.arrary
import torch
# data = np.asarray(data)
data=[[1,2],[3,4]]
data = torch.Tensor(data)
print(data.shape)
print(np.asarray(data.shape))
c = torch.prod(torch.Tensor(np.asarray(data.shape)))
c
torch.Size([2, 2])
[2 2]
tensor(4.)
5.numpy与torch的ravel,它俩用法一样,注意tensor.ravel()后的数据还是Tensor
import torch
# data = np.asarray(data)
data=[[1,2],[3,4]]
data = torch.Tensor(data)
data = data.ravel()
print("ravel:",data)
ravel: tensor([1., 2., 3., 4.])
6.numpy与torch的ndim,它俩用法一样
import torch
data=[[1,2],[3,4]]
data_numpy = np.asarray(data).ravel()
data = torch.Tensor(data)
data = data.ravel()
print("ravel:",data)
print(data.shape)
print("tensor_ndim:",data.ndim)
print("data_numpy_ndim:",data_numpy.ndim)
ravel: tensor([1., 2., 3., 4.])
torch.Size([4])
tensor_ndim: 1
data_numpy_ndim: 1
7.numpy与torch.tensor的data.T效果一样
import torch
data=[[1,2],[3,4]]
data_numpy = np.asarray(data)
data = torch.Tensor(data)
# data = data.ravel()
data_trans_tensor=data.T
print("data:",data)
print("data_trans:",data_trans_tensor)
data_trans_numpy=data_numpy.T
print("data_numpy:",data_numpy)
print("data_trans_numpy:",data_trans_numpy)
data: tensor([[1., 2.], [3., 4.]])
data_trans: tensor([[1., 3.], [2., 4.]])
data_numpy: [[1 2] [3 4]]
data_trans_numpy: [[1 3] [2 4]]
8.np.arange()与torch.arange()用法一样
timesteps=5
a = np.arange(timesteps)
b = torch.arange(timesteps)
print("a:",a)
print("b:",b)
a: [0 1 2 3 4]
b: tensor([0, 1, 2, 3, 4])
Python torch.arange实例讲解 - 码农教程
9.np.ceil()与torch.ceil()用法一样,但torch.ceil()的输入必须是tensor.
a=[0.1,1.1,2.1,3.1]
b=np.ceil(a)
c=torch.ceil(torch.Tensor(a))
print("b:",b)
print("c:",c)
b: [1. 2. 3. 4.]
c: tensor([1., 2., 3., 4.])
10.torch.sort()替换np.sort(),torch.sort()还会返回对应原序列的索引
import numpy as np
import torch
a=[5,1.1,2.1,3.1]
b=np.sort(a)
value,indices=torch.sort(torch.Tensor(a))
print("b:",b)
print("c:",value,indices)
b: [1.1 2.1 3.1 5. ]
c: tensor([1.1000, 2.1000, 3.1000, 5.0000]) tensor([1, 2, 3, 0])
np.sort()函数的作用_wx5ba0c87f1984b的技术博客_51CTO博客
torch.sort()_James_Bobo的博客-CSDN博客_torch.sort()
11.torch.abs()替换np.abs()
data = [-1 , -2 , 1 , 2]
tensor = torch.FloatTensor(data)
print(
"abs in numpy:\n",np.abs(data),
"\nabs in torch:\n",torch.abs(tensor)
)
abs in numpy: [1 2 1 2] abs in torch: tensor([1., 2., 1., 2.])
12.torch.ones_like()替换np.ones_like(),但torch.ones_like参数必须是Tensor
import torch
import numpy as np
a=[[1,2],[3,4]]
input = torch.empty(2, 3)
print(np.ones_like(a))
print(torch.ones_like(input))
[[1 1] [1 1]]
tensor([[1., 1., 1.], [1., 1., 1.]])
13. torch.split替换np.split//未做比较solid的实验,因为np.split可以接受tensor,而且np.split和torch.split的用法不太一样,但能达到相同的效果,未深入研究
import torch
import numpy as np
a=[[1,2],[3,4]]
input = torch.tensor(a)
input_1 = torch.tensor(input)
print(input)
print(input_1)
a = np.split(input,1)
print(a)
b = torch.split(input,1)
print(b)
tensor([[1, 2], [3, 4]])
tensor([[1, 2], [3, 4]])
[tensor([[1, 2], [3, 4]])]
(tensor([[1, 2]]), tensor([[3, 4]]))
np.split 用法详解_Wanderer001的博客-CSDN博客_np.split函数
numpy的ones_like函数_God_s_apple的博客-CSDN博客_numpy ones_like
pytorch之torch.ones_like_刘嘉晨Amber的博客-CSDN博客
14.torch.empty_like()替换np.empty_like()//torch.empty_like()创建一个使用未初始化值填满的tensor
import torch
import numpy as np
a=[[1,2],[3,4]]
input = torch.tensor(a)
print(np.empty_like(a))
print(torch.empty_like(input))
[[1 2] [3 4]]
tensor([[0, 2], [3, 4]])
Python numpy.empty_like用法及代码示例 - 纯净天空
pytorch每日一学22(torch.empty()、torch.empty_like()、torch.empty_strided())创建未初始化数据的tensor_Fluid_ray的博客-CSDN博客_torch.empty
15.tensor.sum()替换np.sum()
import torch
import numpy as np
a=[[1,2],[3,4]]
input = torch.tensor(a)
d = np.array(input)
d1=d.sum(axis=0)
print(d1)
e = torch.tensor(d)
# print(e)
d2=e.sum(axis=0)
print(d2)
[4 6]
tensor([4, 6])
16.np.transpose(可处理高维)与torch.transpose不一样,torch.transpose只能处理2D情况,torch.permute可以处理高维情况
待补
python transpose与permute函数详解_ice123muxin的博客-CSDN博客_transpose和permute
np.transpose_cool whidpers的博客-CSDN博客_np transpose
17. torch.squeeze替换np.squeeze
写到这里突然发现,大部分np函数可以处理tensor,处理完后一般结果是np,再转换为tensor就好了
18. tensor.T与np.arrary.T的效果一样
19.A@B//矩阵乘法
import torch
import numpy as np
a=[[1,2],[3,4]]
input = torch.tensor(a)
d = np.array(input)
print(d)
e = torch.tensor(d)
print(e)
f = torch.tensor(np.squeeze(e))
print(type(f))
g=f.T
print(g)
k = e @ g
print(k)
print(k.type())
[[1 2] [3 4]]
tensor([[1, 2], [3, 4]])
<class 'torch.Tensor'> tensor([[1, 3], [2, 4]])
tensor([[ 5, 11], [11, 25]]) torch.LongTensor
/tmp/ipykernel_7717/3140886201.py:
11: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor). f = torch.tensor(np.squeeze(e))
Python中@符号是什么意思 - 知乎
pytorch替换numpy中的一些组件 //转载请注明来源相关推荐
- [原创,转载请注明来源]android中sqlite数据库的中文数据的插入(insert)和查询(select)
写这个东西写的我万分痛苦,因为这么个小问题整整折磨了我两天多的时间, 大把的青春啊,就这么浪费了, 这些或许对其他人有用,我再花半小时写出来,或许你就可以避免跟我一样,少走两天的弯路. 首先说查询吧: ...
- xml模糊查询语句_2Mybatis学习笔记07:动态SQL语句(原创,转载请注明来源)
开发环境: 硬件环境:Windows10+JDK 1.8: 软件环境:Java+Eclipse+Mybatis+maven3.6+tomcat8.0+Postgresql 10.6: 用到的jar包: ...
- 片上总线Wishbone 学习—— 转载请注明出处:http://blog.csdn.net/ce123
片上总线Wishbone 学习(零)前言 声明:版权所有,欢迎转载! 转载请注明出处:http://blog.csdn.net/ce123 为了更加升入的理解片上系统,比如S3C2440等,今天开始学 ...
- python 等高线地图图片转 tin_由等高线生成TIN并由TIN生成坡度图【解决中文环境翻译差别的问题】(转载请注明出自博客园)...
由等高线等生成TIN并生成坡度图的代码.在softline代码段对错误信息作了处理,不再使用"软线","软性线","柔性线","软 ...
- cordova 调用蓝牙_ionic蓝牙插件(cordova-plugin-ble-central)(个人翻译转载请注明)
支持:iOS和Android4.3+ 安装:Cordova PhoneGap API: scan 扫描: 蓝牙扫描的方法,第二个参数10指的扫描时间,单位是秒,device是扫描的设备 ble.sca ...
- 手写多位数字识别器实现 (转载请注明出处!)
1.主要功能 ①界面化的输入方式,进行实时数字识别 ②可以识别多位的数字,例如23,234 ③CNN进行数字识别 2.运行环境 Windows10.python3.7+.tensorflow2.x 3 ...
- 转载请注明:Windows 系统必备好用软件工具合集跟推荐 | 老D博客
Windows 系统必备好用软件&工具合集跟推荐 97 63,371 A+ 所属分类:工具软件 一.浏览器 二.下载软件 三.播放软件 五.电子邮件客户端 六.图片/照片 浏览查看工具 七.文 ...
- 淘宝网的实习生笔试题以及经历--2011 4 1(转载请注明出处,即原创网址)
昨天晚上7:00在西北工业大学,参加了淘宝网的实习生笔试(技术类),我应聘的是软件研发类.这一方面的人很多. 愚人节这一天,而且又下起了雨,路上车慢的很,感觉挺不顺利的,心情有点糟.到达笔试现场后 ...
- 引用请注明出处和转载请注明出处?我的看法
很多文章和网站 都有这么一条: 引用请注明出处和转载请注明出处,有的无非多了个什么 保留法律权力 之类的 其实想想看,国外XX 小站 "拿去用了" 怎么办,起诉? BT下载&quo ...
最新文章
- Can't add more than 2 views to a ViewSwitcher
- 【Django】@login_required用法简介
- 软件工程第八次作业-2017282110249
- .NET Conf 2021 正在进行中,带你看一看微软带来了什么内容
- kubernetes实践之运行aspnetcore webapi微服务
- java转python推荐算法_java和python实现一个加权SlopeOne推荐算法
- python关键字和保留字_或带有Python示例的关键字
- Visual Studio项目版本转换器(c#项目版本转换器 v1.0)
- linux mint 安装内核,如何在Ubuntu, Linux Mint中安装Linux Kernel 4.18
- 1024 科学计数法 (20 分) C语言
- CVPR2021:单目标跟踪
- STM32系统定时器闪烁LED灯
- MOV指令是数据传送指令
- 微信WeUI扩展组件
- node : 无法将“node”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
- 读《时间管理:如何充分利用你的24小时》笔记
- Java---点名---最简
- PL2303 Windows8.1驱动
- vue文本框中禁止输入空格和使用enter键
- buck控制led恒流控制,双环数字平均电流控制仿真