131-1198-7613
NEWS
网站建设、网站制作、网站设计等相关资讯

确定权重的方法有几种分析_确定权重的方法有几种分析法(确定权重的方法有哪几个)

首页 >> 新闻资讯 作者:磁力SEO 来源:磁力SEO - 搜索引擎优化技巧 日期:2025-02-28

  中生代技术第52期分享

  分享嘉宾:刘光聪

  中生小编预告:中生代技术年度大会上海站将在2017年3月11号进行,请扫描下面二维码关注中生代技术公众号了解详细信息。

中生代技术公众号

  

  祝大家在2017年有新的劳绩。很是感谢大家在春节前夕依然还坚持到场中生代技术的分享运动,也感谢中生代提供的强盛的分享平台。 我是刘光聪,来自于中兴通信技术规划部,关注灵敏软件开发,从事机器进修算法研究,如今负责AI平台架构与打算。 今日我给大家分享的题目是:阐明TensorFlow架构与打算之编程模型。其目的是对深度进修有一个初步的了解,了解TensorFlow的底子编程模型,及其掌握TensorFlow的几个重要概念。

  

  今日我的分享紧张包含3个部门,简朴介绍TensorFlow的架构;大白打定图的工作道理;通过Mnist实战,了解TensorFlow编程模型。

  

  

  TensorFlow在跨平台,通用性,分布式, 可扩展性,可视化等方面优势很是显着。

  

  TensorFlow是一种范例的基于符号编程的数值打定框架,从总架构上分为两层:

1. 前端:负责打定图的机关,支撑多语言,其中Python提供的 API最为成熟;

2. 后端:负责打定图的实施,操纵C++实现,直接利用分布式的CPU/GPU情况。

  

  

  打定图是TensorFlow最重要的领域概念,OP代表节点,Tensor代表边; 数据从节点流入,通过OP运算,从节点流出,并做为下一节点的输入,TensorFlow的命名由此而来。

  

  OP用于表示打定图的一个节点,完成某种抽象的打定。

  

  TensorFlow支撑厚实的OP会萃,并且支撑OP的扩展。

  

  OP通过OP机关器(OP Constructor)生成OP实例,该工厂具有副作用,它将该OP实例注册到打定图中。 此时用户对图实例无感知,因为其上下文存在一个默认的图实例。

  

  OP的输入和输出以Tensor的形式传达,支撑三种底子典范。

  

  描摹OP可以通过三个维度描摹:

1. 典范

2. Tensor的Shape:维度,及其每一维度的大小

3. 约束:例如默认值,承诺的值列表

  

  以placeholder的OP为例,该OP是一个出格的OP,它没有输入,只有输出。并且,他的典范为确定,待用户在机关OP是确定,可以看成一个「泛型编程」的过程。

  

  这是placeholder OP的机关器(constructor),或称为工厂。挪用OP时,指定OP的属性,从而确定OP的底子规格。该过程类似于C++模板实例化,但还未生成对象实例(直至实施打定图阶段)。

  

  Operation描摹了OP的接口(典范,约束,属性,设备等),Kernel是针对详细设备典范,或许数据典范,Tensor的维度及大小的某种详细实现。范例地,OP会有GPU实现的Kernel,及其CPU实现的Kernel 。 这是一种范例的多态打算(区别于编程语言的多态)。

  

  Tensor表示打定图的边实例,表示OP之间的数据流偏向。

  

  Tensor可以通过三元组描摹:(Type, Rank, Shape)。

  

  查察源代码(简化之后),其Protobuf是如此描摹Tensor的,其很好地形式化描摹了Tensor的本质。

  

  在打定图中,存在两种典范的边:

1. 正常的边:用于传达Tensor;

2. 出格的边:用于节制依赖。

  

  节制依赖是一种构建复杂收集模型的重要工具,它表示OP之间实施的依赖关系。

  

  当前上下文,维护了一个指向default graph的指针;也就是说,在任何一个时辰,在上下文中都存在一个默认的图实例。 图实例包含两类:

1. 隐式的图实例

2. 显式的图实例

  

  前者的OP注册到隐式的图实例,后者的OP注册到显式的图实例中。

  

  OP命名的层次化是一种搭建复杂收集的重要工具。例如,将OP看成西安市,那么奈何从地球中找到它呢? 首先,通过全国地图,先找到亚洲,然后找到中国,然后再找到陕西,最后才找到西安。 当搭建复杂的收集模型时,OP命名的层次化,对于OP定位黑白常有用的。

  

  可以指定OP的设备典范,当实施打定图时,该OP会被分配到指定的设备上实施运算。

  

  默认图实例(Default Graph),OP命名的层次化(Name Scope),指派设备(device)等机制,现实是由Context Manager治理,保证在某一个时辰,存在唯一的默认图实例,及其当前的Scope,及其当前的Device等等。

  

  总结一下,TensorFlow是一种基于符号的编程模式,前端完成打定图的机关,后端完成打定图的实施。

  

  这里举一个简朴的例子,x表示模型的输入,y_表示模型的输出(Labels);定义了W, b两个操练参数,然后操纵matmul的OP,及其add的OP完成权重的线性求和,最后操纵ReLU的激活函数,搭建了第一层收集模型。 其中C代表后续的收集层次。

  

  上述代码实现,机关了如上图所示的打定图实例。

  

  通过创建一个Session,操纵Mini-Batch算法实现该模型的操练。很显然,打定图被机关依次,但被实施了多次(一次一个Batch)。

  

  这是操纵Protobuf描摹打定图的领域模型。

  

  这是前端(Python)的领域模型。

  

  这是后端的领域模型。

  

  Session是Client与打定办事的桥梁,是一种资源,操纵完成后保证被关闭;session.run创建了一个瞬时的闭包,该闭包针对于该次Batch,依次传达Tensor,完成整个打定的过程,然后再将梯度反传,最后完成参数的更新。 每个子图只会机关依次,但或许被实施多次。Tensor在OP之间传达,其生命周期仅对当前批次有用,对下一个Mini-Batch无效。

  

  其中,Feed代表模型的输入,Fetch代表模型的输出。

  

  变量是一种出格的OP,它维持一个Tensor的句柄,变相地延伸了该Tensor的生命周期。

  

  变量在操纵之前,都须要操纵初始化的OP进行初始化。例如,W操纵tf.zeros的初始化OP进行初始化为0值。

  

  存在一些语法糖,可以利便地对变量进行初始化(组合模式)。

  

  犹如C++全局变量初始化的依赖关系,TensorFlow变量之间的初始化依赖关系须要出格的处置惩罚处罚。

  

  可以操纵Stateful的OP利用变量,完成变量状况的变更。

  

  通过变量分组,可以利便对变量进行分组治理。例如,可以快速获取出所有操练参数的会萃。

  

  接下来,通过Mnist的实战,加深 大白TensorFlow的编程模型。实战包含两种收集模型的实践:

1. 单层收集(Softmax)

2. 多层收集(2层收集)

  

  特征提取,因为只是Demo示例,这里简朴地按照像素进行特征的提取。

  

  操练样本集的表现图,它是一个二维的Tensor。

  

  这是操练样本的标签会萃(Labels),采纳One-hot形式的特征描摹 。

  

  首先描摹模型的输入和输出,其中None表示batch_size,待seesion.run的Feed提供。

  

  然后定义模型的操练参数会萃,并定义变量初始化OP,用于在实施阶段完成变量的初始化。

  

  这里定义了Mnist的Softmax单层收集模型。

  

  然后定义交错熵的损失函数,并操纵随机梯度下降算法优化该损失函数,使得损失函数最小化。

  

  然后创建一个会话,操纵Mini-Batch算法,完成模型的操练。 」

  

  当完成模型的驯良后,可以操纵测试数据集对模型进行测试,输出模型的精度。

  

  接下来,通过搭建两层收集模型实现Mnist。其中,通过打定图的4个底子子图,显式地增强模型打算的可大白性。

- Inference:仅完成推理,仅仅包含前向打定过程;

- Loss:构建损失函数,打定损失;

- Training:凭据损失,反向传达梯度,然后更新权重,直到模型收敛;

- Evaluation:评估模型的精度

  

  这里搭建了两层的收集模型: 第一层:ReLU 第二层:Softmax

  

  这是推理的紧张逻辑,定义了两层收集。

  

  操纵交错熵定义损失函数。

  

  操纵随机梯度下降算法最小化损失函数 。

  

  操纵evaluation评估收集模型的精度。

  感谢大家的耐心阅读,如果您对TensorFlow的架构与打算感爱好,请持续关注我后续关于TensorFlow源代码的阐明,谢谢。

  

  参考资料,收集上已经很厚实了,在此不在重述了。当然,阅读源代码,是获取最权威的常识的最佳途径。

  

  最后,接待大家关注我的「简书」,直接搜索「刘光聪」,我紧张关注灵敏软件开发,机器进修算法,也接待大家给我更多的教导,谢谢。

问答环节

  Q1. 对TensorFlow的集群化搭建有何建议?

  A1. TensorFlow的分布式架构已经横跨本次分享的内容,渴望篡夺下次机缘再机关一次关于分布式架构与工作机制,实践应用的分享。

  其中,在课本的最后一节,有一个关于TensorFlow分布式的简朴介绍,请查阅:

确定权重的方法有几种分析_确定权重的方法有几种分析法 确定权重的方法有几种分析_确定权重的方法有几种分析法(确定权重的方法有哪几个) 必应词库

  https://www.jianshu.com/p/a857743c7095

  TensorFlow分布式的简朴介绍

  识别二维码直达光聪的简书所在

  Q2. 我可以大白为TensorFlow是一个张量为详细参数的数值打定框架吗?有没有张量为闭包的数值打定框架?我对TensorFlow感爱好紧张是因为它底层是C++实现,我觉得或许会比较高效。

  A2. TensorFlow是一个通用的,分布式的数值打定框架,是业界关注最为普遍的深度进修框架;其中,Tensor是TensorFlow的一个重要数据结构,它是一个特定典范,尽情维度,且每个维度尽情大小的高维数组。

  TensorFlow的前端支撑多语言编程,而后端操纵C++实现,直接利用CPU/GPU硬件,机能是其考虑的重要因素。

  Q3. 请示机器进修是不是必需是数学专业?

  A3. 机器进修是一个多学科交错的领域,它是人工智能的一个重要分支。当然,机器进修的确须要必定的数学根本,例如线性代数,微积分,概率论与数理统计。

  举荐https://github.com/exacity/deeplearningbook-chinese第一部门关于数学根本的概括性介绍。

  Github上链接,第一部门关于数学根本的概括性介绍。

  识别二维码直达

  Q4. 请示中兴通信在机器进修在哪些领域上应用?

  A4. 智能运维,终端,IoT,智能家居等方面都要干系应用。

  Q5. 操练过程能否将状况持久化到硬盘…

  A5. TensorFlow支撑Checkpoint的特征,请参阅https://www.tensorflow.org/versions/master/how_tos/variables/#checkpoint_files

  Checkpoint官网介绍

  识别二维码直达

道谢为常识赞赏的朋侪

  —

  —

  

  

  鸣谢

  道谢为常识打赏的以上群友,祝鸡年大吉,更上层楼

  —

  —

确定权重的方法有几种分析_确定权重的方法有几种分析法 确定权重的方法有几种分析_确定权重的方法有几种分析法(确定权重的方法有哪几个) 必应词库

  为道贺中生代创建一周年,也为了报酬持久支撑的朋侪们,中生代技术团结iTechPlus在上海进行年度大会

  

  

  戳原文,查察光聪简书!

Tags: 权重 模型 打定 几种 方法 实例 中生代 变量 这是 是一种 典范 初始化 分布式 维度 机关

服务热线

131-1198-7613

功能和特性

价格和优惠

获取内部资料

微信服务号