网络模型

论文笔记:蒸馏网络(Distilling the Knowledge in Neural Network)

一笑奈何 提交于 2020-03-09 17:12:28
Distilling the Knowledge in Neural Network Geoffrey Hinton, Oriol Vinyals, Jeff Dean preprint arXiv:1503.02531, 2015 NIPS 2014 Deep Learning Workshop 简单总结 主要工作(What) “蒸馏”( distillation ):把大网络的知识压缩成小网络的一种方法 “专用模型”( specialist models ):对于一个大网络,可以训练多个专用网络来提升大网络的模型表现 具体做法(How) 蒸馏 :先训练好一个大网络,在最后的softmax层使用合适的温度参数T,最后训练得到的概率称为“软目标”。以这个软目标和真实标签作为目标,去训练一个比较小的网络,训练的时候也使用在大模型中确定的温度参数T 专用模型 :对于一个已经训练好的大网络,可以训练一系列的专用模型,每个专用模型只训练一部分专用的类以及一个“不属于这些专用类的其它类”,比如专用模型1训练的类包括“显示器”,“鼠标”,“键盘”,...,“其它”;专用模型2训练的类包括“玻璃杯”,“保温杯”,“塑料杯”,“其它“。最后以专用模型和大网络的预测输出作为目标,训练一个最终的网络来拟合这个目标。 意义(Why) 蒸馏 把大网络压成小网络

广告行业中那些趣事系列6:BERT线上化ALBERT优化原理及项目实践(附github)

妖精的绣舞 提交于 2020-03-08 19:50:58
摘要:BERT因为效果好和适用范围广两大优点,所以在NLP领域具有里程碑意义。实际项目中主要使用BERT来做文本分类任务,其实就是给文本打标签。因为原生态BERT预训练模型动辄几百兆甚至上千兆的大小,模型训练速度非常慢,对于BERT模型线上化非常不友好。本篇研究目前比较火的BERT最新派生产品ALBERT来完成BERT线上化服务。ALBERT使用参数减少技术来降低内存消耗从而最终达到提高BERT的训练速度,并且在主要基准测试中均名列前茅,可谓跑的快,还跑的好。希望对需要将BERT线上化感兴趣的小伙伴有些许帮助。 目录 01 项目背景介绍 02 从BERT到ALBERT 03 万里第一步:先跑通模型 04 多分类任务实践 总结 01 项目背景介绍 原生态BERT预训练模型动辄几百兆甚至上千兆的大小,训练速度非常慢,对于模型线上化非常不友好。为了实现BERT模型线上化问题,其实就是如何又快有好的训练模型,经调研目前超火的BERT最新派生产品ALBERT项目能很好的解决上述问题。 ALBERT是由论文《ALBERT: A Lite BERT For Self-Supervised Learningof Language Representations》提出来的。通常情况下增加预训练模型大小可以提升模型在下游任务中的性能,但是因为“GPU/TPU内存的限制

大牛的《深度学习》笔记,Deep Learning速成教程

半城伤御伤魂 提交于 2020-03-07 18:50:54
雷锋网(公众号:雷锋网)按:本文由Zouxy责编,全面介绍了深度学习的发展历史及其在各个领域的应用,并解释了深度学习的基本思想,深度与浅度学习的区别和深度学习与神经网络之间的关系。 深度学习,即Deep Learning,是一种学习算法(Learning algorithm),亦是人工智能领域的一个重要分支。从快速发展到实际应用,短短几年时间里,深度学习颠覆了语音识别、图像分类、文本理解等众多领域的算法设计思路,渐渐形成了一种从训练数据出发,经过一个端到端(end-to-end)的模型,然后直接输出得到最终结果的一种新模式。那么,深度学习有多深?学了究竟有几分?本文将带你领略深度学习高端范儿背后的方法与过程。 一、 概述 二、 背景 三、 人脑视觉机理 四、 关于特征 4.1、特征表示的粒度 4.2、初级(浅层)特征表示 4.3、结构性特征表示 4.4、需要有多少个特征? 五、 Deep Learning的基本思想 六、 浅层学习(Shallow Learning)和深度学习(Deep Learning) 七、 Deep learning与Neural Network 八、 Deep learning训练过程** 8.1、传统神经网络的训练方法 8.2、deep learning训练过程 九、 Deep Learning的常用模型或者方法 9.1、AutoEncoder自动编码器

网络七层,五层,四层模型,数据封装、解封装,进制转换。

泄露秘密 提交于 2020-03-06 07:51:44
今天一天主要学的就是:1)网络 ISO/OSI 七层系统模型,TCP/IP 四层,五层模型 2)网络通信中数据的封装和解封装的过程 3)二进制,八进制,十进制,十六进制之间的转换 1、ISO/OSI 七层系统模型:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层 TCP/IP 五层模型:应用层 -------- 计算机 传输层 -------- 防火墙 网络层 -------- 路由器 数据链路层 -------- 交换机 物理层 -------- 网卡、网线 TCP/IP 四层模型:网络接口层,网络层,传输层,应用层 协议簇: ICMP / IGMP / IP / ARP / PARP 是属于网络层协议 HTTP / FTP / TFTP / DNS / SMTP / SNMP 所对应的应用接口(数字) HTTP:80 FTP:20、21 TFTP:69 SMTP:25 SNMP:161 DNS:53 2、网络通信中数据的封装和解封装的过程 封装:原始数据在应用层 “f翻译” 成计算机通用语言--二进制数据 上层数据运输到传输层,在传输层封装一个TCP头部, 将封装了TCP头部的上层数据运输到网络层,在网络层封装IP头部, 将封装了IP头部的上层数据运输到数据链路层,在数据链路层封装MAC头部, 将封装好的数据传到达物理层后,将以比特流的形式传输出去。 解封装:在物理层

几种网络服务器模型的介绍与比较

五迷三道 提交于 2020-03-05 16:52:59
原文链接 前言 事件驱动为广大的程序员所熟悉,其最为人津津乐道的是在图形化界面编程中的应用;事实上,在网络编程中事件驱动也被广泛使用,并大规模部署在高连接数高吞吐量的服务器程序中,如 http 服务器程序、ftp 服务器程序等。相比于传统的网络编程方式,事件驱动能够极大的降低资源占用,增大服务接待能力,并提高网络传输效率。 关于本文提及的服务器模型,搜索网络可以查阅到很多的实现代码,所以,本文将不拘泥于源代码的陈列与分析,而侧重模型的介绍和比较。使用 libev 事件驱动库的服务器模型将给出实现代码。 本文涉及到线程 / 时间图例,只为表明线程在各个 IO 上确实存在阻塞时延,但并不保证时延比例的正确性和 IO 执行先后的正确性;另外,本文所提及到的接口也只是笔者熟悉的 Unix/Linux 接口,并未推荐 Windows 接口,读者可以自行查阅对应的 Windows 接口。 阻塞型的网络编程接口 几乎所有的程序员第一次接触到的网络编程都是从 listen()、send()、recv() 等接口开始的。使用这些接口可以很方便的构建服务器 / 客户机的模型。 我们假设希望建立一个简单的服务器程序,实现向单个客户机提供类似于“一问一答”的内容服务。 图 1. 简单的一问一答的服务器 / 客户机模型 我们注意到,大部分的 socket 接口都是阻塞型的。所谓阻塞型接口是指系统调用(一般是

《网络攻防》- 学习心得

巧了我就是萌 提交于 2020-03-04 12:47:07
目录 冯诺依曼体系结构理解 设计思路 图灵机的理解 图灵的生平 人工智能 程序=指令+数据 组成 运行机制 图灵完备 冯诺依曼体系结构理解 当前计算机主要是基于冯诺依曼体系结构设计的,下面就简单分析一下冯诺依曼体系结构的计算机是如何工作的,首先下面的图就是冯诺依曼体系结构图。 主要由五大部件组成 1.存储器用来存放数据和程序 2.运算器主要运行算数运算和逻辑运算,并将中间结果暂存到运算器中 3.控制器主要用来控制和指挥程序和数据的输入运行,以及处理运算结果 4.输入设备用来将人们熟悉的信息形式转换为机器能够识别的信息形式,常见的有键盘,鼠标等 5.输出设备可以将机器运算结果转换为人们熟悉的信息形式,如打印机输出,显示器输出等 冯诺依曼体系结构的指令和数据均采用二进制码表示;指令和数据以同等地位存放于存储器中,均可按地址寻访;指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数所在存储器中的位置;指令在存储器中按顺序存放,通常指令是按顺序执行的,特定条件下,可以根据运算结果或者设定的条件改变执行顺序;机器以运算器为中心,输入输出设备和存储器的数据传送通过运算器。 然而现在的计算机基本以存储器作为中心 但是由于运算器和控制器在逻辑关系和电路结构上联系十分紧密,通常将它们合起来统称为中央处理器,简称CPU,把输入输出设备简称为I/O设备

如何设计一个RPC系统

北城余情 提交于 2020-03-02 16:37:37
版权声明:本文由韩伟原创文章,转载请注明出处: 文章原文链接: https://www.qcloud.com/community/article/162 来源:腾云阁 https://www.qcloud.com/community RPC是一种方便的网络通信编程模型,由于和编程语言的高度结合,大大减少了处理网络数据的复杂度,让代码可读性也有可观的提高。但是RPC本身的构成却比较复杂,由于受到编程语言、网络模型、使用习惯的约束,有大量的妥协和取舍之处。本文就是通过分析几种流行的RPC实现案例,提供大家在设计RPC系统时的参考。 由于RPC底层的网络开发一般和具体使用环境有关,而编程实现手段也非常多样化,但不影响使用者,因此本文基本涉及如何实现一个RPC系统。 认识RPC(远程调用) 我们在各种操作系统、编程语言生态圈中,多少都会接触过“远程调用”的概念。一般来说,他们指的是用简单的一行代码,通过网络调用另外一个计算机上的某段程序。比如: RMI——Remote Method Invoke:调用远程的方法。“方法”一般是附属于某个对象上的,所以通常RMI指对在远程的计算机上的某个对象,进行其方法函数的调用。 RPC——Remote Procedure Call:远程过程调用。指的是对网络上另外一个计算机上的,某段特定的函数代码的调用。 远程调用本身是网络通信的一种概念

YOLO v2 / YOLO9000论文详解

╄→尐↘猪︶ㄣ 提交于 2020-03-02 01:14:56
YOLO9000:Better, Faster, Stronger 声明:笔者翻译论文仅为学习研究,如有侵权请联系作者删除博文,谢谢 ! 源论文地址: https://arxiv.org/abs/1612.08242 注 :文字中标粗和亮色的部分为笔者认为有创新改进余地和需要注意的地方,斜体部分为笔者的一些想法,因水平所限,部分笔触可能有不实和错误之处,敬请广大读者批评指正,让我们一起进步~ YOLO v2 和 YOLO 9000 可以看成是两部分,其中v2是对v1的各个部分进行技术上的加持和改进;9000是对数据集和检测类别进行扩展。这里我们重点说YOLO v2部分。 v2相对于v1来说,速度更快、精度更高。 具体改进措施有以下几点: 1. 各卷积层后添加BN层; 2. YOLO2在采用 224×224 图像进行分类模型预训练后,再采用 448×448 的高分辨率样本对分类模型进行微调(10个epoch),使网络特征逐渐适应 448×448 的分辨率。然后再使用 448×448 的检测样本进行训练,缓解了分辨率突然切换造成的影响; 3. 引入anchor boxes(召回率上升,准确率略微下降),448×448 -> 416×416 通过使用K-means聚类方法筛选出一个网格cell里预测5个锚点框最合适; 通过给anchor

图与网络模型及方法之最短路问题(dijkstra算法)

风格不统一 提交于 2020-03-01 19:04:07
两个指定顶点之间的最短路径: 两个指定顶点之间最短路问题的数学规划模型: 每对顶点之间的最短路径: 最小生成树问题: Prim算法: Prim算法类似病毒感染的过程,其中P中存放的是已经计算出的顶点(即前一顶点与后一顶点构成的边在最短路径上),然后遍历P中所有的顶点,找出与V-P中所构成的边的最小值得那个顶点a,然后将顶点a归入P中,如此迭代,最终P=V,即算出了最小生成数。 Kruskal算法: 其实Kruskal算法的思想和Prim算法的思想都是一样的(都是将所有点分为两个集合,已经遍历过的点归入P集合,未遍历过的点在V-P集合中,其中V是所有点的集合),Prim算法是将每次算出的最小权值的新顶点归入P集合,然后找出P集合与V-P集合中的点所成的最小权值的边,将构成最小权值边的V-P中的那点再归入到P集合中,如此迭代下去,P集合最终会和V集合相等。Kruskal算法是将P集合中的点化为一个点(标号值最小的那个点,对于每次迭代来讲,即将找到的最短权值边的较大的顶点标号改为较小的那个顶点的标号,并且淘汰掉此次迭代找到的最短权值边),每次迭代都会找到一个新点,如此迭代n-1(n是V集合中点的个数)次,就算出了最小生成树。 来源: https://www.cnblogs.com/anyk1416/p/12391130.html

【OCR技术系列之四】基于深度学习的文字识别(3755个汉字)

China☆狼群 提交于 2020-03-01 09:12:18
上一篇提到文字数据集的合成,现在我们手头上已经得到了3755个汉字(一级字库)的印刷体图像数据集,我们可以利用它们进行接下来的3755个汉字的识别系统的搭建。用深度学习做文字识别,用的网络当然是CNN,那具体使用哪个经典网络?VGG?RESNET?还是其他?我想了下,越深的网络训练得到的模型应该会更好,但是想到训练的难度以及以后线上部署时预测的速度,我觉得首先建立一个比较浅的网络(基于LeNet的改进)做基本的文字识别,然后再根据项目需求,再尝试其他的网络结构。这次任务所使用的深度学习框架是强大的Tensorflow。 网络搭建 第一步当然是搭建网络和计算图 其实文字识别就是一个多分类任务,比如这个3755文字识别就是3755个类别的分类任务。我们定义的网络非常简单,基本就是LeNet的改进版,值得注意的是我们加入了batch normalization。另外我们的损失函数选择sparse_softmax_cross_entropy_with_logits,优化器选择了Adam,学习率设为0.1 #network: conv2d->max_pool2d->conv2d->max_pool2d->conv2d->max_pool2d->conv2d->conv2d->max_pool2d->fully_connected->fully_connected def build