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

pc网站建设需要提供哪些资料工程材料信息价查询网免费

pc网站建设需要提供哪些资料,工程材料信息价查询网免费,商贸有限公司经营范围,河南省建设监理协会网站证书查询本文以 Pytorch 为线索#xff0c;介绍人工智能和深度学习相关的一些术语、概念。 关于发展历史您也可以阅读深度学习神经网络之父 Jrgen Schmidhuber 所写的《Annotated History of Modern AI and Deep Learning#xff08;现代人工智能和深度学习的注释版历史#xff09;…本文以 Pytorch 为线索介绍人工智能和深度学习相关的一些术语、概念。 关于发展历史您也可以阅读深度学习神经网络之父 Jürgen Schmidhuber 所写的《Annotated History of Modern AI and Deep Learning现代人工智能和深度学习的注释版历史》个人认为这篇博客虽然对于新手来说非常不友好但是非常全面非常建议您阅读一下尽管很多看不懂的地方但是对于新手来说也会大有收获。 tensor张量 Tensor张量是一种专门的数据结构与数组和矩阵很像。张量其实可以理解成数组和矩阵的扩充因为数组最多只能是二维也就是一个矩阵但是神经网络有时候需要更高纬度这个时候数组就不够用了在 C 中可以使用指针实现哦。 在 Pytorch 中张量是一个类能够通过数组、numpy 转换得到张量甚至可以与 numpy 共用内存地址。 在 Pytorch中shape是表示张量纬度的元组。如下生成输出的是一个 2 行 3 列的张量 shape (2,3,)zeros_tensor torch.zeros(shape)print(fZeros Tensor: \n {zeros_tensor}) Zeros Tensor:tensor([[0., 0., 0.],[0., 0., 0.]])neural networkNN神经网络 从字面上来看NN这里往后一律将神经网络称为 NN 这是为了避免在阅读过程中出现误解是模拟人类的神经元进行计算信号传递到神经元通过神经元的计算再输出。但是在 NN 中这些“神经元”都有了新的称呼输入层、隐藏层也就是处理数据的部分、输出层。 此外虽然有一些 NN 的研究和发展确实参考了人类的神经系统但是现在 NN 的研究与人类神经系统关系不大了。 1805 年Adrien-Marie Legendre 发表了最小二乘法least squares method也被称为线性回归现在被称为线性 NN。 这个最早发表的 NN 有两个层一个包含了多个输入单元的输入层以及一个输出层。 工作流程为每个输入单元是一个实数将输入与误差函数的相乘在与权重的相加然后将得到的总和输出也就是下图右侧的式子。 这与今天的线性 NN 在数学上一模一样基本算法、误差函数bias、权重自适应参数。下图中的“Activation function”是基本算法方程中的“b”是 bias“weight”是权重 但是如果根据 NN 的概念来看第一个 NN 出现在 1801年德国数学家卡尔·弗里德里希·高斯就是高斯算法的那个高斯就使用最小二乘法可以理解成利用“浅层”学习进行模式识别以此计算预测出谷神星的位置因此成名。 而 NN 这一术语则是由 Aizenberg 等人于 2000 年第一次提出这比很多人年龄都小了。 在 Pytorch 中命名空间 torch.nn 提供了构建自定义神经网络所需的所有构建模块。也就是 Pytorch 的开发者提前写好了现有的各种模块这样就不用自己一个个去写了只要使用即可。但是如果你想出了一种新的层或者模型那么就得自己编写构建了。 deep learning深度学习 深度学习全名为“深度前馈网络架构的学习”也就是就是在 NN 中有多个非线性隐藏层这也解释了为什么上文中将最小二乘法称为“浅层”学习。 虽然“深度学习”这一名词最早由 Dechter 引入但是第一次深度学习是出现在 1965 年的苏联。Alexey Ivakhnenko 和 Valentin Lapa 为包含了多个隐藏层的深度 MLP多层感知器引入了第一个通用的学习算法。 NN 的输入层 NN 的输入层由张量展开flatten获得如下 只有展开之后输入数据才能很好地被隐藏层处理。 在 Pytorch 中由nn.Flatten实现。例如下面是将 3 张 28x28 的图片展开成 3 个存储了 784 个像素的一维数组然后放在一个多维数组中 flatten nn.Flatten()flat_image flatten(input_image)print(flat_image.size()) torch.Size([3, 784])NN 的各种模型层Model layers NN 中的每一层都相当于一种模型会对数据进行处理、计算、输出等操作。 Pytorch 提供了很多模型供我们使用包括线性层、非线性层、变形金刚Transformer、并行数据处理层等各种构建神经网络所需的模块。详细还请查看 torch.nn 这里以线性操作中的 Linear处理数据 和 Softmax缩放数据得到可能性以及非线性操作中的 ReLU 为例进行介绍其他模块同理。 Linear Linear 是一个使用权重和 biases 将输入值线性转换的模块。数学含义如下 weight∗inputbiasweight*inputbias weight∗inputbias 例如下面是使用 Pytorch 将输入的 28*28 个特征也就是上文中的 784 个像素通过线性层nn.Linear转换成 20 个特征输出并且hidden1表示第一个隐藏层 layer1 nn.Linear(in_features28*28, out_features20)hidden1 layer1(flat_image)print(hidden1.size()) torch.Size([3, 20])Softmax Softmax 用于计算 NN 输出结果的可能性只用于 NN 的输出层计算出的可能性区间为 [0,1][0, 1][0,1]表示每一类的模型预测密度。数学含义如下 f(xi)exi∑jexjf(x_i)\tfrac{e^{x_i}}{\sum_j e^{x_j}} f(xi​)∑j​exj​exi​​ 上面使用 linear 将 784 个输入特征转换成了20个输入特征但是最后输出的内容应该是根据可能性来判断出来。所以这时候需要 Softmax 对上一层传过来的返回值进行处理从而得到各种类型的可能性然后选择可能性最大的结果作为输出。 下图中左侧为概括出的模型右侧为详细模型运行流程 可以看到这里 Softmax 将得到的值区间为[−∞,∞][-\infty, \infty][−∞,∞]带入上面那个数学公式进行计算得到的结果就是可能性。 ReLU 非线性操作Non-linear activations是为了在输入层和输出层之间创建复杂的映射表通常放在线性转换之后。这样可以方便 NN 学习复杂多样的多项式。 ReLU 操作函数将线性操作层得到的计算结果中的负值替换成 0。数学含义如下 线性层输出结果xweight∗inputbiasReLU输出结果f(x){0if x0,xif x≥0\begin{align*} 线性层输出结果xweight*inputbias \\ ReLU 输出结果 f(x) \begin{cases} 0 \text{if } x 0,\\ x \text{if } x \ge 0 \end{cases} \end{align*}线性层输出结果xReLU输出结果f(x)​weight∗inputbias{0x​if x0,if x≥0​​ 比如说有这样一个张量 tensor([ 0.2190, 0.1448, -0.5783, 0.1782, -0.4481, -0.2782, -0.5680, 0.1347,0.1092, -0.7941, -0.2273, -0.4437, 0.0661, 0.2095, 0.1291, -0.4690,0.0358, 0.3173, -0.0259, -0.4028])在经过 ReLU 计算之后得到的结果是 tensor([0.2190, 0.1448, 0.0000, 0.1782, 0.0000, 0.0000, 0.0000, 0.1347, 0.1092,0.0000, 0.0000, 0.0000, 0.0661, 0.2095, 0.1291, 0.0000, 0.0358, 0.3173,0.0000, 0.0000])训练神经网络 上文提到 linear 的数学含义是 weight∗inputbiasweight*inputbias weight∗inputbias 这里有两个因素可以影响输出结果weightweightweight 和 biasbiasbias 这两个参数。那么这两个值是如何确定的呢当然你可以一个个自己设置然后再根据结果调整参数最后得到能使结果最接近预想值的参数但是这样想想都很麻烦。 或者也可以通过特定算法称为学习算法进行迭代调整获得合适的参数使得结果越来越接近预想值。每一次迭代称之为 1 epoch世。而这个迭代的过程就是训练神经网络。 最常见的学习算法是反向传播算法back propagation由于只是介绍概念就不在这里详细介绍反向传播算法的原理了应该会单独写一篇写了会贴链接在这。 保存和加载模型 在训练完神经网络模型之后需要保存模型用于推断。有几种方法保存和加载模型整体保存、结构和参数分开存放以及 ONNX。ONNX 的保存和加载请查看“ONNX”部分。 整体保存 Pytorch 可以保存整个模型然后再加载。方法如下 # 保存整个模型到PATH torch.save(model, PATH)# 从PATH加载模型 model torch.load(PATH) # 设置“eval”模式用于推断 model.eval()结构和参数分开保存 这种方法是保存训练学习到的模型参数存放到到一个内部状态字典中也就是保存源代码和学习得到的参数即可。这也是最常用的保存模型的方法。 这样保存模型的话加载模型就有两步 重新创建模型结构因为只保存了学习到的参数加载状态字典到模型结构中也就是加载学习到的参数。 方法如下 # 保存模型参数到PATH torch.save(model.state_dict(), PATH)# 重新声明创建模型结构如果上文没有模型代码那么需要载入 model TheModel(...) # 加载保存的参数到PATH model.load_state_dict(torch.load(PATH)) # 设置“eval”模式用于推断 model.eval()ONNX ONNX 全称 Open Neural Network Exchange开放神经网络交换是用来分享神经网络和机器学习的格式。ONNX 是为了解决在不同平台加速神经网络训练和推理的不便。如果没有 ONNX那么就需要花大量时间来优化在不同框架、不同设备上的性能。这不仅需要大量的时间只需要了解不同的编程语言、不同平台的特性等等。 ONNX 是把模型结构和参数存在一起了这与上一节将结构和参数分开存放的方法不一样。 在 Pytorch 中使用以下方法输出模型为 ONNX onnx_model data/model.onnx onnx.export(model, input_data, onnx_model)其中model是准备导出的模型onnx_model是导出后的模型。 这里保存模型为data/model.onnx这是个路径。 加载模型进行推断也只用一步使用onnxruntime.InferenceSession创建一个 session 即可 # 创建session加载模型 onnx_model data/model.onnx session onnxruntime.InferenceSession(onnx_model, None) # 设置输入数据和输出数据 input_name session.get_inputs()[0].name output_name session.get_outputs()[0].name# 开始推断 result session.run([output_name], {input_name: x.numpy()}) # 这里的classes是数据的分类列表 # 将推断结果赋值给predicted predicted classes[result[0][0].argmax(0)] # 将预想结果赋值给actual actual classes[y] # 输出预想值和实际值 print(fPredicted: {predicted}, Actual: {actual})当然这部分内容很多更多信息可以查看 Pytorch 官方文档 TORCH.ONNX 以及 ONNX RUNTIME 官方介绍 Inference with ONNXRuntime使用ONNXRuntime推断 加速训练或推理 前面提到了神经网络不论是训练还是推理主要就是计算张量。你可能还记得自己计算矩阵的时候一个个计算多费劲就想有好几个自己一起算对于计算机来说也是这样。所以对于训练神经网络来说并行计算能力非常重要。而并行计算能力一般和算数逻辑单元ALU例如 Nvidia 的 Cuda Core相关并不是唯一相关还与显存带宽有关。详情可以查看我的另外一篇博客《在笔记本和 Mac mini 2018 上 Pytorch 实现的简单 NN 性能测试》。 CPU 设计目的是串行计算这是为了尽可能快地实现一些操作多核 CPU 也就是为了可以并行执行几十个这样的串行计算线程进而提高吞吐量而 GPU 设计目的就是为了在同等价格和功耗的范围内提供比 CPU 更多的吞吐量和内存带宽。 CPU 核心的大部分晶体管都是用来实现数据缓存和流量控制器。并且由于 X86 是复杂指令集尽管这样可以使用较少的指令完成任务但是实现一个核心所需的晶体管就多出了很多指令要用晶体管实现的。虽然 ARM 这种精简指令集会好一些但是也没好到哪去。所以尽管光刻等芯片制造技术进步了很多但是现在核心最多的单插槽 CPU 是 128 个物理核心Ampere Altra Max。 而 GPU 提高吞吐量是通过几百上千个 ALU 来弥补的单核性能不足的问题例如轻薄本用的 MX250 的 Cuda 核心数量都有 384 个。并且 Nvidia、Apple 等厂商还在 GPU 中放入了专门计算张量的模块很多晶体管被用来提升并行计算能力这样并行计算性能提升更高。所以一般训练模型会使用显卡进行加速。 当然还有能效更优的 FPGA。这里就引用英伟达开发者文档中的话CPU 擅长串行计算GPU 适合并行计算。虽然 FPGA 能效更佳但是编程灵活性太低了所以 GPU 是最均衡的选择。 不同平台加速训练的框架如下 厂商架构Pytorch 中安装方法/介绍NvidiaCudahttps://pytorch.org/get-started/locally/#linux-verificationAppleMPShttps://developer.apple.com/metal/pytorch/IntelIntel® Extensionhttps://www.intel.com/content/www/us/en/developer/articles/guide/getting-started-with-intel-optimization-of-pytorch.htmlAMDROCMhttps://pytorch.org/blog/pytorch-for-amd-rocm-platform-now-available-as-python-package/ 需要注意几点 Apple 的 MPS 加速只支持 Apple 芯片或搭载了 AMD 显卡的 MacIntel 的核显不支持虽然核显支持 Metal。Intel 的 Intel® Extension 不光可以利用 GPU 加速也可以利用 CPU 加速通过 AVX-512 和 AMX。如果你只想使用 CPU 进行加速不用额外的设置如果想使用 GPU 加速那么需要使用xpu这个设备名。当然前提是你的 Pytorch 包含了 Intel® Extension如果没有可以自己编译一下https://github.com/intel/intel-extension-for-pytorch。 希望可以帮到有需要的人哦
文章转载自:
http://www.morning.pylpd.cn.gov.cn.pylpd.cn
http://www.morning.tmxtr.cn.gov.cn.tmxtr.cn
http://www.morning.rwrn.cn.gov.cn.rwrn.cn
http://www.morning.hsjrk.cn.gov.cn.hsjrk.cn
http://www.morning.qgtbx.cn.gov.cn.qgtbx.cn
http://www.morning.rtqyy.cn.gov.cn.rtqyy.cn
http://www.morning.sxcwc.cn.gov.cn.sxcwc.cn
http://www.morning.kztpn.cn.gov.cn.kztpn.cn
http://www.morning.ztmnr.cn.gov.cn.ztmnr.cn
http://www.morning.sjjq.cn.gov.cn.sjjq.cn
http://www.morning.dyzbt.cn.gov.cn.dyzbt.cn
http://www.morning.yfmlj.cn.gov.cn.yfmlj.cn
http://www.morning.smhtg.cn.gov.cn.smhtg.cn
http://www.morning.nynyj.cn.gov.cn.nynyj.cn
http://www.morning.dbqcw.com.gov.cn.dbqcw.com
http://www.morning.jsdntd.com.gov.cn.jsdntd.com
http://www.morning.lqzhj.cn.gov.cn.lqzhj.cn
http://www.morning.xdnhw.cn.gov.cn.xdnhw.cn
http://www.morning.ypwlb.cn.gov.cn.ypwlb.cn
http://www.morning.tdnbw.cn.gov.cn.tdnbw.cn
http://www.morning.qgfy.cn.gov.cn.qgfy.cn
http://www.morning.gwjsm.cn.gov.cn.gwjsm.cn
http://www.morning.jqjnl.cn.gov.cn.jqjnl.cn
http://www.morning.rykx.cn.gov.cn.rykx.cn
http://www.morning.nwmwp.cn.gov.cn.nwmwp.cn
http://www.morning.jsxrm.cn.gov.cn.jsxrm.cn
http://www.morning.rgsgk.cn.gov.cn.rgsgk.cn
http://www.morning.ssrjt.cn.gov.cn.ssrjt.cn
http://www.morning.gkjnz.cn.gov.cn.gkjnz.cn
http://www.morning.kkjlz.cn.gov.cn.kkjlz.cn
http://www.morning.htbsk.cn.gov.cn.htbsk.cn
http://www.morning.yxnfd.cn.gov.cn.yxnfd.cn
http://www.morning.wgcng.cn.gov.cn.wgcng.cn
http://www.morning.tqrjj.cn.gov.cn.tqrjj.cn
http://www.morning.fhxrb.cn.gov.cn.fhxrb.cn
http://www.morning.xhrws.cn.gov.cn.xhrws.cn
http://www.morning.nuejun.com.gov.cn.nuejun.com
http://www.morning.bfkrf.cn.gov.cn.bfkrf.cn
http://www.morning.nnqrb.cn.gov.cn.nnqrb.cn
http://www.morning.dtcsp.cn.gov.cn.dtcsp.cn
http://www.morning.wtdhm.cn.gov.cn.wtdhm.cn
http://www.morning.jtdrz.cn.gov.cn.jtdrz.cn
http://www.morning.nbybb.cn.gov.cn.nbybb.cn
http://www.morning.haolipu.com.gov.cn.haolipu.com
http://www.morning.tbhf.cn.gov.cn.tbhf.cn
http://www.morning.tyrlk.cn.gov.cn.tyrlk.cn
http://www.morning.ygbq.cn.gov.cn.ygbq.cn
http://www.morning.gwdmj.cn.gov.cn.gwdmj.cn
http://www.morning.pxrfm.cn.gov.cn.pxrfm.cn
http://www.morning.rmtmk.cn.gov.cn.rmtmk.cn
http://www.morning.gryzk.cn.gov.cn.gryzk.cn
http://www.morning.kwksj.cn.gov.cn.kwksj.cn
http://www.morning.kgxrq.cn.gov.cn.kgxrq.cn
http://www.morning.prls.cn.gov.cn.prls.cn
http://www.morning.wbns.cn.gov.cn.wbns.cn
http://www.morning.ywndg.cn.gov.cn.ywndg.cn
http://www.morning.znqfc.cn.gov.cn.znqfc.cn
http://www.morning.djpzg.cn.gov.cn.djpzg.cn
http://www.morning.gbfck.cn.gov.cn.gbfck.cn
http://www.morning.hpxxq.cn.gov.cn.hpxxq.cn
http://www.morning.clbzy.cn.gov.cn.clbzy.cn
http://www.morning.hcbky.cn.gov.cn.hcbky.cn
http://www.morning.myzfz.com.gov.cn.myzfz.com
http://www.morning.divocn.com.gov.cn.divocn.com
http://www.morning.tnktt.cn.gov.cn.tnktt.cn
http://www.morning.wyfpc.cn.gov.cn.wyfpc.cn
http://www.morning.lywys.cn.gov.cn.lywys.cn
http://www.morning.chhhq.cn.gov.cn.chhhq.cn
http://www.morning.ysybx.cn.gov.cn.ysybx.cn
http://www.morning.tsmcc.cn.gov.cn.tsmcc.cn
http://www.morning.frqtc.cn.gov.cn.frqtc.cn
http://www.morning.cyhlq.cn.gov.cn.cyhlq.cn
http://www.morning.nqlx.cn.gov.cn.nqlx.cn
http://www.morning.rtjhw.cn.gov.cn.rtjhw.cn
http://www.morning.yhwxn.cn.gov.cn.yhwxn.cn
http://www.morning.lngyd.cn.gov.cn.lngyd.cn
http://www.morning.ddqdl.cn.gov.cn.ddqdl.cn
http://www.morning.prprj.cn.gov.cn.prprj.cn
http://www.morning.rzcmn.cn.gov.cn.rzcmn.cn
http://www.morning.ccphj.cn.gov.cn.ccphj.cn
http://www.tj-hxxt.cn/news/240560.html

相关文章:

  • 自做网站好做吗wordpress首页特效
  • 凡科免费建微信小程序网站长沙有哪些网站建设公司好
  • 网站开发去哪里找工作情人节网站源码下载
  • 化妆品网站建设规模设想企业网站关键词放几个
  • 网站建设过程中要怎么打开速度重庆市建设网站首页
  • 免费软件看电视剧最好的关键词排名优化软件
  • 网站建设与管理教学设计品牌网站建设等高端服务
  • 郑州网站建设代运营浙江seo公司
  • 陕西高端品牌网站建设自动搜索关键词软件
  • 个人英文网站设计天津优化网络公司的建议
  • 网站设计与开发培训班海门建设厅网站
  • asp网站变慢大连做网站孙晓龙
  • 东莞企业推广网站制作莱芜杂谈
  • 企业网站开发常用的字体搭建自己微信网站
  • 建个企业网站需要多少钱suxing wordpress
  • 凡客的网站功能手机在线查看html源代码
  • 网站开发软件有哪些哈尔滨的网站设计
  • 网站建设售前域名seo查询
  • 大连营商建设局网站软件开发工程师面试自我介绍
  • ftp网站后台深圳数字展厅
  • 山东东方路桥建设总公司官方网站网站视频接口 怎么做
  • 佛山网站专家重庆市建设工程网官网
  • 企业品牌网站建设公司wordpress颜色代码
  • 汕头网站排名搭建一个app平台要多少钱
  • 金华网站开发公司桂林人论坛桂林板路
  • 南通有哪些网站淘客网站必须备案么
  • 做网站公司 蓝纤科技wordpress网页游戏模板
  • 外贸网站vps服务器做网站项目实例
  • 网站的建站标准邯郸网络教研平台
  • 可以访问任何网站的浏览器网站域名注销备案