NumPy库与PyTorch库的异同点

目录

1.单位的创建和操作

1.创建

2.形状变换

2.数学和统计操作

1.矩阵乘法

2.广播

3.统计计算

3.GPU支持

4.在深度学习中的作用

5.应用范围


NumPy库为数组服务,PyTorch库为张量服务,这是最本质的区别。

1.单位的创建和操作

1.创建

NumPy:使用 np.array([1, 2, 3]) 来创建数组。

PyTorch:使用 torch.tensor([1, 2, 3]) 来创建张量。这里的张量在 PyTorch 中与 NumPy 的数组相似。

2.形状变换

NumPy:arr.reshape(2, 3) 用于改变数组形状。

PyTorch:tensor.view(2, 3)tensor.reshape(2, 3) 用于改变张量形状。

2.数学和统计操作

1.矩阵乘法

NumPy:np.dot(a, b)a @ b

PyTorch:torch.matmul(a, b)a @ b

2.广播

广播机制是一种在不同形状的数组(或张量)之间进行数学运算时使用的技术,它能自动扩展数组的维度,使其符合运算要求,从而避免了明确复制数据的需要。这种机制可以显著减少内存使用,并提高计算效率。

NumPyPyTorch 都支持广播机制,允许形状不完全相同的数组进行数学操作。具体可以参考我的NumPy库介绍这篇文章。

3.统计计算

NumPy:arr.mean(), arr.sum(), np.median(arr) 等。

PyTorch:tensor.mean(), tensor.sum(), torch.median(tensor) 等。

3.GPU支持

NumPy:主要在 CPU 上运行,没有内建的 GPU 支持。

PyTorch:可以直接在 GPU 上运行计算,通过 .to('cuda') 方法将张量移动到 GPU。

在这里简单介绍下GPU

GPU(图形处理单元)是一种专门设计用来处理图形和视频渲染的计算设备。不过,由于其高度并行的结构,现在GPU也广泛用于各种高性能计算任务,特别是在数据科学、机器学习和深度学习领域。

如何查看自己的GPU呢?

打开任务管理器,调到性能这一栏

如果想要查看Gpu是否在工作,在命令行用nvidia-smi命令打开,前提是要安装CUDA和nvidia驱动。具体可查看这篇文章Windows10下cmd中nvidia-smi命令输入无效的解决办法_nvidia-smi' 不是内部或外部命令,也不是可运行的程序 或批处理文件。-CSDN博客

 正常跑深度学习模型时,Gpu可达到百分之九十多。

4.在深度学习中的作用

NumPy:不支持自动梯度计算和反向传播,通常需要手动实现或使用其他库。

PyTorch:通过 Autograd 系统自动管理梯度计算和反向传播,使用 tensor.backward() 自动计算梯度。

5.应用范围

NumPy:广泛应用于科学计算领域,如物理模拟、统计分析、图像处理等。

PyTorch:专为深度学习设计,广泛用于构建和训练各种类型的神经网络。

然两者在基本操作上非常相似,但 PyTorch 通过支持动态计算图和 GPU 加速,以及集成深度学习特有的功能(如自动梯度计算),为深度学习提供了更加专业和高效的工具。而 NumPy 则作为一个更通用的科学计算库,在广泛的科学研究领域中都有应用。

以下是在PyTorch库对NumPy库中若干方法的修正

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

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

相关文章

长安汽车:基于云器 Lakehouse 的车联网大数据平台建设

近年来随着智能汽车行业的迅速发展,数据也在呈爆炸式增长。长安大数据平台承接了长安在生产上大部分流量应用及日常生产业务应用。本文将分享长安汽车在车联网场景下大数据平台建设面临的一些挑战和具体落地的实践。 主要内容如下: 1. 背景介绍 2. 长…

android图标底色问题,debug与release不一致

背景 在android 8(sdk 26)之前的版本,直接使用图片文件作为图标,开发时比较容易控制图标,但是不同的安卓定制版本就不容易统一图标风格了。 在android 8及之后的版本,图标对应的是ic_launcher.xml&#x…

【iOS】KVO

文章目录 前言一、KVO使用1.基本使用2.context使用3.移除KVO通知的必要性4.KVO观察可变数组 二、代码调试探索1.KVO对属性观察2.中间类3.中间类的方法3.dealloc中移除观察者后,isa指向是谁,以及中间类是否会销毁?总结 三、KVO本质GNUStep窥探…

基于51单片机的遥控开关仿真

基于51单片机的遥控开关设计 (仿真+程序+设计报告) 功能介绍 具体功能: 本课题研究的是一款遥控开关,采用51单片机进行发射电路与接收电路的设计,发射电路由单片机最小系统及四个按键构成&am…

经典笔试题:快速排序 计数排序

Problem: 912. 排序数组 思路 👨‍🏫 三叶题解 💖 AC:计数排序 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( n ) O(n) O(n) class Solution {public int[] sortArray(int[] nums) {int max -50001, min 50001;for (…

【半个月我拿下了软考证】软件设计师高频考点--系统化教学-关系模式

👨‍💻 收录于专栏:软件设计师考点暴击 ⭐🅰️进入狂砍分⭐ ⭐软件设计师高频考点文档, ⭐软件设计师高频考点专栏 ⭐软件设计师高频考点⭐ 🎶(A) 考点1,关系模式 考点: 三个模式相…

【JVM基础篇】类加载器分类介绍

文章目录 类加载器什么是类加载器类加载器的作用是什么应用场景类加载器的分类启动类加载器用户扩展基础jar包 扩展类加载器和应用程序类加载器扩展类加载器通过扩展类加载器去加载用户jar包: 应用程序加载器 Arthas中类加载器相关功能 文章说明 类加载器 什么是类…

[C++核心编程-01]----C++内存四区详细解析

目录 前言 正文 01-内存区域简介 02-全局区 03-栈区 04-堆区 05-new操作符 总结 前言 当程序运行时,操作系统会为程序分配一块内存空间,这块内存空间被划分为不同的区域,每个区域有其独特的作用…

Unity图形图表XChart插件使用

最近做了一款数字孪生项目,其中涉及到了图形图表的应用,网上找了一下,找到了XChart插件,使用起来蛮方便的,不过还有待继续研究,很多细节性的知识点需要进行学习探索。以下是项目中的应用。 官方应用: ![](https://img-blog.csdnimg.cn/direct/ab9de8e84e7b4be4a50ea…

vs2019 cpp20 规范的线程头文件 <thread> 注释并探讨两个问题

(1)学习线程,与学习其它容器一样,要多读 STL 库的源码。很多知识就显然而然的明白了。也不用死记硬背一些结论。上面上传了一份注释了一下的 源码。主要是补充泛型推导与函数调用链。基于注释后的源码探讨几个知识点。 STL 库的多…

哈希(构造哈希函数)

哈希 哈希也可以叫散列 画一个哈希表 哈希冲突越多&#xff0c;哈希表效率越低。 闭散列开放定址法: 1.线性探测&#xff0c;依次往后去找下一个空位置。 2.二次探测&#xff0c;按2次方往后找空位置。 #pragma once #include<vector> #include<iostream> #i…

Linux重定向及缓冲区理解

重定向&#xff1a; 在上一期虚拟文件系统中讲到了每个进程在打开后&#xff0c;都会默认打开3个文件&#xff0c;如下&#xff1a; stdin 标准输入&#xff08;键盘&#xff09; 文件描述符&#xff1a;0 stdout 标准输出&#xff08;显示器&#xff09;文件描述符&a…

每日OJ题_贪心算法四⑤_力扣354. 俄罗斯套娃信封问题

目录 力扣354. 俄罗斯套娃信封问题 解析代码1_动态规划&#xff08;超时&#xff09; 解析代码2_重写排序贪心二分 力扣354. 俄罗斯套娃信封问题 354. 俄罗斯套娃信封问题 难度 困难 给你一个二维整数数组 envelopes &#xff0c;其中 envelopes[i] [wi, hi] &#xff0…

25计算机考研院校数据分析 | 中南大学

中南大学&#xff08;Central South University&#xff09;&#xff0c;位于湖南省长沙市&#xff0c;是中华人民共和国教育部直属的全国重点大学 &#xff0c;中央直管副部级建制&#xff0c;位列国家“双一流”、“985工程”、“211工程”&#xff0c;入选国家“2011计划”牵…

陪玩系统APP小程序H5音视频社交系统陪玩系统源码,陪玩app源码,陪玩源码搭建陪玩社交系统开发(现成,可定制)线下陪玩系统项目开发搭建

线下陪玩系统项目的设计 在需求分析完成后&#xff0c;接下来进行系统设计。系统设计主要包括以下几个部分&#xff1a; 1. 数据库设计&#xff1a;根据需求分析的结果&#xff0c;设计数据库结构&#xff0c;包括用户信息表、服务信息表、订单信息表等。 2. 界面设计&#…

阮怀俊参与五龙乡黄沙村村企联办“强村公司”

为走好海岛县高质量发展共同富裕特色之路&#xff0c;探索村级集体经济发展新路径、扶持新模式、运行新机制&#xff0c;嵊泗县五龙乡黄沙村股份经济合作社与杭州山舍乡建乡村产业发展有限责任公司联办成“强村公司”。 创始人阮怀俊表示&#xff0c;双方就融合乡域发展和文旅产…

MFC桌面应用中窗口的客户区与非客户区的

在MFC&#xff08;Microsoft Foundation Class&#xff09;中&#xff0c;窗口被分为客户区和非客户区。理解这两个概念对于设计和开发Windows应用程序至关重要。 客户区&#xff08;Client Area&#xff09;&#xff1a; 客户区是窗口中用于显示应用程序内容的区域。它是窗口…

PXE高效批量装机

一、PXE的概述 PXE是由Inter 公司开发的网络引导技术&#xff0c;工作在Client / Server 模式。允许客户机通过网络从远程服务器下载引导镜像&#xff0c;并加载安装文件或者整个操作系统。 1.1PXE优点 规模化&#xff1a;同时装配多台服务器 自动化&#xff1a;安装系统&am…

力扣10.正则表达式匹配

前言&#xff1a; 由于今天面试前端&#xff0c;面试官问对正则表达式的匹配理解吗&#xff1f; 当时脑袋发热&#xff0c;我说就是对字符串的替换。。。。 太抽象了&#xff0c;于是我面试结束后马上打开力扣&#xff0c;解了正则表达式的匹配算法题(四种语言)&#xff1b; 下…

03c++重载运算符

1、深入理解new和delete原理 #include<iostream> using namespace std;/* new 和 delete 1、malloc和new的区别 new 内存开辟构造函数 2、free和 delete的区别 delete 内存回收析构函数 开辟失败malloc返nullptr ,new抛出bad_alloc异常new->operator new delete -&…