【一起撸个DL框架】1 绪论

news2025/6/18 9:13:09

文章目录

  • 第一章 绪论 🍉
    • 1.1 在人工智能的大潮里
    • 1.2 为什么重复造轮子
    • 1.3 深度学习框架简介

第一章 绪论 🍉

1.1 在人工智能的大潮里

人工智能——一个如今十分火热的话题,人们在生活中越来越多地使用它、谈论它。在2022年之前,人工智能在我们的生活中就已经有了许多落地的应用,如手机扫脸付款、抖音个性化推荐。而ChatGPT的问世又掀起了新一轮的热潮,寒假期间在新闻联播上看到ChatGPT时,我突然有些恍惚——聊天机器人已不再只是实验室里的玩物、人们眼中的“人工智障”,它突然闯进大众的生活里了。

人工智能越来越激起人们的好奇与关注了,因为它越来越强大。但,从“人们手工地定义一条条的规则”到“随便聊”的聊天机器人,从”人工“到”智能“,这其中究竟发生了什么?

也行你已经听过深度学习机器学习这样的概念,它们与人工智能是这样一种关系:人工智能是我们的目标,机器学习则是手段,而深度学习是机器学习的一种,同时也是目前我们实现人工智能最有希望的方式。(ChatGPT很强大,但在许多人看来它并不具有真正的智能)

而深度学习技术必然离不开深度学习框架(这正是我真正要介绍的内容),现流行的框架如Tensorflow,Pytorch,PaddlePaddle,其基本原理是一致的。也许你在已经了解了深度学习的理论之后,使用深度框架实践时仍然会遇到一些障碍——源于框架的障碍。它的封装会让你很方便,但有时它的抽象也会让你很头疼。

1.2 为什么重复造轮子

程序员间流传着一句“名言”:不要重复造轮子。但我们如果是作为一个学生的角色,那么应该学会去“造轮子”。

使用框架的过程难以让我了解它,因为我能看见的唯有现象而已。人们有时会说,不懂就去读源代码,而这也很难得以清晰的了解框架的原理,不过是管中窥豹,只见一斑罢了。而亲手造轮子的方法很有用,它迫使你将脑海中碎片化的知识组织起来,以达到你的目标。

学习造轮子有三种状态:一是跟着敲代码,二是试着改代码,三是独立设计。其中后两种方式更有助于促进你自己去思考,我更倾向于第三种。当然,你肯定无法凭空知道如何去设计一个深度学习框架,学习知识是必要的。但是在学过一部分之后,就可以试着关上书(或者别的什么资料),从第一行代码开始,自己去设计代码逻辑,以实现一些功能。

然后,你可以再与你的资料中的实现进行对比,有哪些异同,哪些好的地方和不好的地方,他为什么和你的想法不一样,他的目的是什么。收获反馈和总结之后,再脱离你的资料,试着去改进你的代码。

此外,在开始你自己的设计和实现之前,你甚至可以先去干点别的,以在脑海中忘掉书中一些具体的实现细节,留下基本的原理——给自己留下更多思考和选择的机会。

1.3 深度学习框架简介

所谓“深度学习框架”,其实是一个代码库,我们可以利用其中预定义的函数和类更快地实现一个深度学习任务,比如猫狗分类问题。本文假设读者已经了解一些深度学习的原理,而重点解释在你实现深度学习任务的过程中,框架究竟帮你做了哪些事情。

深度学习的本质是函数拟合,例如对于目标函数 y = 2 x + 3 y=2x+3 y=2x+3,你需要现设计一个合适的函数架构,比如 y = w x + b y=wx+b y=wx+b,其中w和b两个参数是未知的,通过不断地把很多组自变量x和对应的函数结果y“喂给”你设计的函数,程序就可以找出w和b的值。因此,深度学习可以说是一种“在现象中总结出规律”的技术。

深度学习框架的核心功能是自动微分,而自动微分的原理是复合(嵌套)函数求导的链式法则,例如, y = x 2 , z = 2 ∗ y y=x^2,z=2*y y=x2,z=2y ,则z关于x的导数

d z d x = d z d y d y d x = 2 ∗ 2 x = 4 x \frac {dz}{dx}=\frac{dz}{dy} \frac{dy}{dx}=2*2x=4x dxdz=dydzdxdy=22x=4x

深度学习框架的自动微分功能是基于计算图实现的,例如下面的计算图定义了函数 y = w x + b y=wx+b y=wx+b,输入x而得到 w x + b wx+b wx+b,这便是正向传播的过程。

在这里插入图片描述

在计算图的结构之上,沿着计算函数值相反的路径,就可以利用链式法则求出最终结果结点(y)对于变量结点(x、w、b)的导数值dx、dw、db,如下图所示,求得 d w = x ∗ d y dw=x*dy dw=xdy d b = d y db=dy db=dy。我们的目标只是找到参数w和b合适的值,因此不需要求关于x的梯度。

那么dy是什么呢?可以取1,那得到的dw就是“+”结点关于w的导数;也可以是从后面其它结点传递过来的导数。

在这里插入图片描述

小结一下,这一节主要介绍了深度学习中一些基本的概念,包括函数拟合自动微分链式法则计算图,后面将会在这些概念的基础之上逐步搭建起一个简单的深度学习框架,并使用我们自己搭建的框架完成一些经典的深度学习任务,同时获取对于这些概念更加清晰的认知。


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

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

相关文章

ChatGPT会取代律师这份职业吗?

如今,一种新型的人工智能威胁再次来袭,律师们可能会感到似曾相识的感觉。有人警告称,类似于ChatGPT的软件,因为具有类似于人类的语言流畅性,可能会取代大部分法律工作。 人工智能​的进步曾让人们预测,法律…

Linux 网络扫描工具:nmap,涨知识的时间到了!

在Linux系统中,nmap是一个非常流行的网络扫描工具。它可以用于探测主机和网络上的开放端口、操作系统类型、服务和应用程序等信息。nmap还可以与Ping命令结合使用,以便快速识别网络上的活动主机。本文将介绍如何在Linux上使用nmap和Ping命令进行扫描。 …

服务器部署需要注意的事项

前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…

在win10系统中使用EasyUEFI修复​Win10+Ubuntu双系统​引导启动项

我安装了Win10Ubuntu双系统,有一天电脑突然坏了开不了机,把硬盘拆下放到别的机器上,发现是直接进入Win10系统,而不是grub选择界面。进F12也找不到ubuntu的启动项。 之前网上的修复方法是: 1. 首先你需要一张ubuntu的…

多智能体强化学习论文导读

Adaptive Value Decomposition with Greedy Marginal Contribution Computation for Cooperative Multi-Agent Reinforcement Learning Dec-POMDP 本文的研究对象是 decentralized partially observable Markov decision process (Dec-POMDP), 我们首先来看一下它和经典的MDP…

用HTTP proxy module配置一个而反向代理服务器

反向代理与正向代理 摘抄:https://cloud.tencent.com/developer/article/1418457 正向代理 正向代理(forward proxy):是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,…

2023-04-11 无向图的匹配问题

无向图的匹配问题 之所以把无向图的这个匹配问题放到最后讲是因为匹配问题借鉴了有向图中一些算法的思想 1 最大匹配和完美匹配 二分图回顾 二分图:把一个图中的所有顶点分成两部分,如果每条边的两端分别属于不同部分,则这个图是二分图。更多…

银行数字化转型导师坚鹏:金融科技与数字化转型成功案例

金融科技与数字化转型成功案例课程背景: 数字化转型背景下,很多银行存在以下问题: 不清楚金融科技如何赋能数字化转型? 不清楚银行金融科技体系的建设情况? 不了解银行数字化转型标杆成功案例? 课程特色…

AD六层板布线经验累积

目录 1、布局: 2、创建电源类PWR 3、高速部分可以加屏蔽罩, 4、EMMC和NANDFLASH采取兼容放置(创建联合) 5、HDMI设计 6、就近原则摆放 7、AV端口 8、模拟信号(1字型或L型走线) 9、WIFI模块 10、局…

Python+ChatGPT实战之进行游戏运营数据分析

文章目录一、数据二、目标三、解决方案1. DAU2. 用户等级分布3. 付费率4. 收入情况5. 付费用户的ARPU最近ChatGPT蛮火的,今天试着让ta写了一篇数据分析实战案例,大家来评价一下!一、数据 您的团队已经为您提供了一些游戏数据,包括…

考研数二第十七讲 反常积分与反常积分之欧拉-泊松(Euler-Poisson)积分

反常积分 反常积分又叫广义积分,是对普通定积分的推广,指含有无穷上限/下限,或者被积函数含有瑕点的积分,前者称为无穷限广义积分,后者称为瑕积分(又称无界函数的反常积分)。 含有无穷上限/下…

基于粒子群优化算法的分布式电源选址与定容【多目标优化】【IEEE33节点】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

接口自动化测试面试常问的题目及答案,你都会了吗?

目录 前言 接口自动化测试的优势是什么? 你使用过哪些接口自动化测试工具? 你如何设计一个接口自动化测试用例? 接口自动化测试中常见的测试类型有哪些? 你如何解决接口自动化测试中遇到的问题? 如何进行接口自动…

专属大模型来了!还有ECS降价40%、50款产品免费试用|阿里云峰会亮点一览

4 月 11 日,阿里巴巴集团董事会主席兼 CEO、阿里云智能集团 CEO 张勇在云峰会上表示,阿里巴巴所有产品未来将接入“通义千问”大模型,进行全面改造。 自 2019 年起,阿里即开始进行大模型研究,并在近期推出阶段性的研究…

Google Play 政策更新 | 2023 年 4 月

我们一如既往地努力让 Google Play 成为值得开发者和用户信赖的安全平台,欢迎您通过 Google Play PolicyBytes 中文视频了解本次政策更新的具体内容,更及时更清晰地掌握 Google Play 最新政策。△ Google Play 政策更新 | 2023 年 4 月Bilibili 视频链接…

ch03-PyTorch模型搭建

ch03-PyTorch模型搭建0.引言1.模型创建步骤与 nn.Module1.1. 网络模型的创建步骤1.2. nn.Module1.3. 总结2.模型容器与 AlexNet 构建2.1. 模型容器2.1.1.nn.Sequential2.1.2.nn.ModuleList2.1.3.nn.ModuleDict2.2. AlexNet 构建2.3. 总结3.nn 网络层:卷积层3.1. 1d/…

图像语义分割与目标检测概述

在计算机视觉领域,不仅有图像分类的任务,还有很多更复杂的任务,如对图像中的目标进行检测和识别,对图像进行实例分割和语义分割等。其中在基于卷积神经网络的深度学习算法出现后,图像的语义分割和目标检测的精度也有了质的提升。 …

绘制ROC曲线及P-R曲线

绘制ROC曲线及P-R曲线 描述 ROC曲线(Receiver Operating Characteristic Curve)以假正率(FPR)为X轴、真正率(TPR)为y轴。曲线越靠左上方说明模型性能越好,反之越差。ROC曲线下方的面积叫做AUC…

视频动态库测试及心得

视频动态库测试及心得 这几天一直在弄动态库测试,h给的写好的动态库--预处理模块的库。视频处理项目一部分,需要连接实际情况测试。 需求: 1.把实际相机连接到,并读取实时数据流,保存到双循环链表里面; 2.测试背景建模…

wsl安装torch_geometric

在官网选择需要的版本 选择安装途径,选择runfile 执行第一行,会下载一个文件到目录下 需要降低C的版本,否则 执行sudo sh cuda_11.1.0_455.23.05_linux.run,会出现 查看对应的文件,会有 可以加上override参数之后,…