当前位置: 首页 > news >正文

设计网站怎么做产品免费发布平台

设计网站怎么做,产品免费发布平台,网络规划设计师教程第2版2021版pdf,品牌设计培训用 C 写一个卷积神经网络 深度学习领域最近发展很快#xff0c;前一段时间读transformer论文《Attention Is All You Need》时#xff0c;被一些神经网络和深度学习的概念搞得云里雾里#xff0c;其实也根本没读懂。发现深度学习和传统的软件开发工程领域的差别挺大#xf… 用 C 写一个卷积神经网络 深度学习领域最近发展很快前一段时间读transformer论文《Attention Is All You Need》时被一些神经网络和深度学习的概念搞得云里雾里其实也根本没读懂。发现深度学习和传统的软件开发工程领域的差别挺大光读论文可能不是一条很好了解深度学习的路径。所以我换了一个思路从开源的项目入手当时我研究了一段时间ggml项目代码(https://github.com/ggerganov/ggml) , 但实际的难度还是太过陡峭主要的困难来源于数学推导和神经网络本身的特殊性。为了更全面的了解深度学习领域最后我选择从基础的系统知识和书籍入手, 在阅读《Neural Networks and Deep Learning》这本书时正好书中是通过设计一个手写识别程序来讲解神经网络书中的例子是用python实现的其中用了不少机器学习库屏蔽了很多细节。于是萌生了自己用C写一个手写识别程序想法。 要用C不依赖第三方库写一个神经网络需要从数学推导、网络模型和工程实现三个方面着手。项目本身没有什么价值只是个人学习神经网络一个小玩具。 代码地址https://github.com/yuanrongxi/simple-neural-network.git 神经网络涉及到的数学主要是线性代数和微积分求导神经网络中的计算大部分是通过矩阵来完成的首先需要弄明白标量、向量、张量等概念掌握基本的矩阵运算例如空间转置、加减乘除、点积、reshape等线性代数推荐看《Linear Algebra an Its Applications》了解基本的向量空间和运算即可如果想更直观可以看https://github.com/kf-liu/The-Art-of-Linear-Algebra-zh-CN/blob/main/The-Art-of-Linear-Algebra-zh-CN.pdf。积分求导主要是针对神经网络的反向传播因为在神经网络推导时会用各种激活函数、softmax、卷积、pooling max、norm、flatten等数据操作反向传播的过程的梯度下降算法需要对这些操作进行反向求导所以需要清楚各个函数求导过程和代价函数概念求导更详细的可以看B站上的《跟着李沐学AI》。 网络模型涉及到神经元和感知机的概念通过编排神经元和激活函数构建网络分层这个《Neural Networks and Deep Learning》中讲的比较清楚。网络模型可以理解成一堆weight(权重)/bais(偏置)加一堆的y w.xb的函数但它分为正向传播(feedforward)和反向传播(backprop)正向传播就是推理反向传播就是求权重和偏置参数。因为反向传播过程是一个利用梯度下降求导的过程理解起来会有些困难https://builtin.com/machine-learning/backpropagation-neural-network 对反向传播总结的非常好通俗易懂。最后CNN模型选择参照了YanLeCun的LeNet图-1保留第一个卷积层去掉了中间的卷积层。 工程实现方面参照了NumPy的思路将涉及到矩阵运算、激活函数、反向求导等做成一个独立的矩阵运算模块这样做的好处是可以对专门的运算做优化后面也方便加入GPU和CUDA做尝试。其次设计了一个run state机制因为神经网络在推理和训练时会有很多的中间数据这些数据有些是临时的有些是反向传播依赖的。为了避免频繁内存分配在创建NN时将所有用到的对象统一分配中间数据的矩阵flatten也是零拷贝。关于CPU并行计算上采用了openmp进行简单的矩阵并行处理加快训练速度所以在矩阵运算代码中用了大量的数组下标寻址没有使用更快的指针后面CPU上可以尝试SSSE3/simd128采用多线程分任务优化。最后神经网络是难于调试的往往逻辑流程运行正确但训练出来的结果不达预期和传统的系统工程差别大。在实现中采用了对所有数学代码进行单元测试并逐一对照相对应的pytorch运行结果确保数学上正确这样做大大减轻了神经网络的调试难度。值得一提的是程序设计后期借助了cursor AI代码工具效率是前期的4~5倍左右。 来看一下程序的效果采用的是MNIST的数据集6万张训练图片和1万张测试图片训练和测试30轮多层感知机网络的识别准确度在95%左右CNN网络的准确度在98%左右。执行时间CNN是多层感知机的20倍左右。 整个程序的开发设计断断续续用了4个周末的时间实现难度一般过程有些简单的认识: 之所以Python成为深度学习界的标准开发语言是因为它有很多强大的库和平台像NumPy、Pytorch、Keras等写一个神经网络可能只需几十行代码简单高效其他语言无可匹及。业界正在研究基于Python语言的编译技术这可能是未来重要的方向之一。 深度学习与传统软件工程差别大传统软件工程是建立的逻辑学层面的工程体系只要逻辑性强从事软件开发不是难事所以行业内人员参差不齐。AI和深度学习领域有自己独立的知识体系而且更多是要依靠数学推导和模型设计工程实现也更偏CPU/GPU相关的编程逻辑在其中起的作用有限AI这个领域不太可能出现从培训机构出来就业的人员。传统软降工程也走到一个阶段了软件工程的需求正在从传统的工程领域快速迁移到深度学习领域。 深度学习的计算分为推理和训练随着网络模型的发展计算将越来越重。训练的计算量会因为成本越来越高会出现更高效的芯片和分布式计算网络。而推理计算由于安全和场景需要可能会越来越终端化而且推理的计算量未来是训练计算量的万倍甚至更多会催生出新的工程领域例如ggml。 AI发展很快很多面向程序员的工具像github copilot、cursor等生成的代码未必可直接使用但能够加快从概念到代码的过程合理使用AI工具可以更快的进入陌生领域。 科技正在大力向前它已不再朝我而来我唯一能做的是调整自己的位置来跟上它的步伐。
http://www.hkea.cn/news/14459026/

相关文章:

  • 想创建一个网站安徽省工程建设信息网站
  • 河源网站搭建费用500m网站
  • 麻涌网站仿做设计网页的步骤是什么
  • 没有网站可以做搜索引擎营销吗做网站不好做
  • 颍州网站建设建筑师网站
  • wordpress站外搜索公众号如何做微网站
  • 台州网站优化方案微商分销
  • 汽车网站正在建设中模板html5网站建设公司
  • 网站推广软件赚钱难吗?长沙小程序开发
  • 给公司做网站要花多钱唐山哪家网站好
  • 网页升级访问中每天正常更新中系统优化的影响因素
  • iis 多网站网站原创文章优化
  • 铜仁网站优化广告设计案例网站
  • 网站 多语言设计制作中国第一架飞机的人
  • phpcms做装修网站阿里云一键建站网站
  • 公司网站建设流程巴南网站建设哪家好
  • 网站建站建设怎么做马鞍山做网站的公司
  • 用python做网站后端最快多久studio网站开发
  • 梁头网站建设中国建筑集团有限公司官网招标网
  • 什么是网站架构网页设计与制作课程代码
  • 网站开发系统架构图网络体系结构
  • 湖南网站建站系统哪家好网站合作建设方案
  • 集团网站建设特点互联网课堂搜索引擎入口yandex
  • 建设工程信息发布网站大学生毕业设计网页设计
  • 如何做好一个外贸进网站的编辑微网站 微信网站
  • 网站注销重新备案深圳软件开发
  • 网站开发 图片存放怎么设置公司网站
  • c2c网站页面设计特点我需要网站
  • 天津市建设工程监理公司网站wordpress伪静态规则
  • 淄博网站制作怎么收费好项目寻找个人投资