网络模型

论文笔记系列--MnasNet:Platform-Aware Neural Architecture Search for Mobile

放肆的年华 提交于 2020-01-22 23:10:15
本文介绍针对一篇移动端自动设计网络的文章《MnasNet:Platform-Aware Neural Architecture Search for Mobile》,由Google提出,很多后续工作都是基于这个工作改进的,因此很有必要学习了解。 Related work MnasNet的目的很简单就是设计出表现又好,效率又高的网络。在介绍之前简单回顾一下现有的一些提高网络效率的方法: quantization :就是把模型的权重用更低精度表示,例如之前使用float32来存储权重,那么我们可以试着用8位来存,更极致的思路是0,1来存,这就是Binary Network,也有一些工作研究这个,本文不做细究。 pruning :就是把模型中不重要的参数删掉。常用的一种剪枝方法是对通道数进行剪枝,因为这种方法实现起来方便,得到的模型结构也是规则的,计算起来也方便。 人工设计模块 ShuffleNet 上图(a)就是加入Depthwise的ResNet bottleneck结构,而(b)和(c)是加入Group convolution和Channel Shuffle的ShuffleNet的结构。 MobileNet :引入Depthwise Separable Convolution (DWConv) MobileNetv2 :在DWConv基础上引入inverted residuals

TCP/IP协议

拈花ヽ惹草 提交于 2020-01-21 18:48:57
TCP/IP协议 TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。 TCP/IP协议,或称为TCP/IP协议栈,或互联网协议系列。 TCP/IP协议栈 (按 TCP/IP参考模型 划分),TCP/IP分为4层,不同于OSI,他将OSI中的会话层、表示层规划到应用层。 应用层(Application Layer) 应用层对应于OSI参考模型的应用层、表示层、会话层三个层次,为用户提供所需要的各种服务 主要协议有 Telnet 、 FTP 、 SMTP 等,是用来接收来自传输层的数据或者按不同应用要求与方式将数据传输至传输层; 传输层(transport layer) 传输层对应于OSI参考模型的传输层,为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性。 该层定义了两个主要的协议: 传输控制协议(TCP) 和 用户数据报协议(UDP) 网际互联层(network layer) 网际互联层对应于OSI参考模型的网络层

Pytorch调研笔记

随声附和 提交于 2020-01-21 16:07:51
Pytorch 训练调研 首先我们简单说明一下,这么多深度学习框架中,为什么选择PyTorrch呢? 因为PyTorch是当前难得的简洁优雅且高效快速的框架。在笔者眼里,PyTorch达到目前深度学习框架的最高水平。当前开源的框架中,没有哪一个框架能够在灵活性、易用性、速度这三个方面有两个能同时超过PyTorch。下面是许多研究人员选择PyTorch的原因。 1、简洁:PyTorch的设计追求最少的封装,尽量避免重复造轮子。不像TensorFlow中充斥着session、graph、operation、name_scope、variable、tensor、layer等全新的概念,PyTorch的设计遵循tensor→variable(autograd)→nn.Module 三个由低到高的抽象层次,分别代表高维数组(张量)、自动求导(变量)和神经网络(层/模块),而且这三个抽象之间联系紧密,可以同时进行修改和操作。 简洁的设计带来的另外一个好处就是代码易于理解。PyTorch的源码只有TensorFlow的十分之一左右,更少的抽象、更直观的设计使得PyTorch的源码十分易于阅读。 2、速度:PyTorch的灵活性不以速度为代价,在许多评测中,PyTorch的速度表现胜过TensorFlow和Keras等框架 。框架的运行速度和程序员的编码水平有极大关系,但同样的算法

SSD网络模型之DetectionOutput算子

大城市里の小女人 提交于 2020-01-21 16:04:08
DetectionOutput算子 本文基本结构:首先介绍detection output 这一层的基本理解,之后给出ssd所有代码的详细注释,最后给出caffe中该层各个参数的定义和默认值。 detection out layer是ssd网络最后一层,用于选框整合预、预选框偏移以及得分三项结果,最终输出满足条件的目标检测框、目标的label和得分。 输入方面,mbox_priorbox是网络各个priorbox层输出concat后的结果(priorbox解析点这里),相当于把所有预选框放到一起;mbox_loc是在预选框的基础上的偏移量;mbox_conf_flatten就是每个类别在各个框上的得分。 输出大小为[1, 1, x, 7],其中x是最后保留的框的个数,最后一维存放的数据为: [image_id, label, confidence, xmin, ymin, xmax, ymax] 计算思路: 1)对bottom层的location、confidence和priorbox进行解析,放到vector中 2)对每个priorbox进行解码。所谓解码其实就是整合输入层。前面说到过了,输出需要给出每个目标的检测框,但是输入是预选框和偏移量,这里要做的就是计算出最终的检测框。解码需要考虑priorbox编码方式,共三种情况。 假设检测框用b表示(存储内容:b_xmin, b

SSM网络模型之PriorBox算子

帅比萌擦擦* 提交于 2020-01-21 15:49:14
PriorBox算子 ssd网络一大特点是,为了提高检测准确率,在不同尺度的特征图上进行预测,这种预测就需要prior box layer。 prior box 是干嘛的呢?其实非常类似于Faster R-CNN中的Anchors,就是候选框,这种候选框的选取不需要像R-CNN那样通过复杂处理产生。在ssd中,priorbox层只需要bottom层feature map的大小,就可以给出候选框。假设输入的feature map大小是W×H,生成的prior box中心就有W×H个,均匀分布在整张图上。在每个中心上,可以生成多个不同长宽比的prior box,如[1/3, 1/2, 1, 2, 3],每个点就可以生成length_of_aspect_ratio个框,所以在一个feature map上可以生成的prior box总数是W×H×length_of_aspect_ratio。 如上图b)所示,在8x8的feature map上,每个中心点生成了4个预选框。(c)是4x4的feature map,假设(c)是(b)后面的层,prior box参数相同,那么显然,从(b)中提取的预选框更有利于小尺度对象的检出,而从(c)中提取的预选框更有利于大尺度对象的检出(4x4的feature map 只有8x8 feature map长宽的1/2,相同参数的prior

图像分类

帅比萌擦擦* 提交于 2020-01-20 12:25:15
图像分类 本教程源代码目录在 book/image_classification ,初次使用请您参考 Book文档使用说明 。 # 说明: 1.硬件环境要求: 本文可支持在CPU、GPU下运行 2.Docker镜像支持的CUDA/cuDNN版本: 如果使用了Docker运行Book,请注意:这里所提供的默认镜像的GPU环境为 CUDA 8/cuDNN 5,对于NVIDIA Tesla V100等要求CUDA 9的 GPU,使用该镜像可能会运行失败。 3.文档和脚本中代码的一致性问题: 请注意:为使本文更加易读易用,我们拆分、调整了train.py的代码并放入本文。本文中代码与train.py的运行结果一致,可直接运行 train.py 进行验证。 # 背景介绍 图像相比文字能够提供更加生动、容易理解及更具艺术感的信息,是人们转递与交换信息的重要来源。在本教程中,我们专注于图像识别领域的一个重要问题,即图像分类。 图像分类是根据图像的语义信息将不同类别图像区分开来,是计算机视觉中重要的基本问题,也是图像检测、图像分割、物体跟踪、行为分析等其他高层视觉任务的基础。图像分类在很多领域有广泛应用,包括安防领域的人脸识别和智能视频分析等,交通领域的交通场景识别,互联网领域基于内容的图像检索和相册自动归类,医学领域的图像识别等。 一般来说

循环神经网络(RNN, Recurrent Neural Networks)介绍

谁说我不能喝 提交于 2020-01-20 04:45:27
原文地址: http://blog.csdn.net/heyongluoyao8/article/details/48636251# 循环神经网络(RNN, Recurrent Neural Networks)介绍    这篇文章很多内容是参考: http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/ ,在这篇文章中,加入了一些新的内容与一些自己的理解。   循环神经网络(Recurrent Neural Networks,RNNs)已经在众多 自然语言 处理(Natural Language Processing, NLP)中取得了巨大成功以及广泛应用。但是,目前网上与RNNs有关的学习资料很少,因此该系列便是介绍RNNs的原理以及如何实现。主要分成以下几个部分对RNNs进行介绍: 1. RNNs的基本介绍以及一些常见的RNNs(本文内容); 2. 详细介绍RNNs中一些经常使用的训练 算法 ,如Back Propagation Through Time(BPTT)、Real-time Recurrent Learning(RTRL)、Extended Kalman Filter(EKF)等学习算法,以及梯度消失问题(vanishing

循环神经网络(Recurrent Neural Networks, RNN)介绍

情到浓时终转凉″ 提交于 2020-01-20 04:44:32
目录 1 什么是RNNs 2 RNNs能干什么   2.1 语言模型与文本生成Language Modeling and Generating Text   2.2 机器翻译Machine Translation   2.3 语音识别Speech Recognition   2.4 图像描述生成 Generating Image Descriptions 3 如何训练RNNs 4 RNNs扩展和改进模型   4.1 Simple RNNsSRNs2   4.2 Bidirectional RNNs3   4.3 DeepBidirectionalRNNs4   4.4 Echo State Networks5   4.5 Gated Recurrent Unit Recurrent Neural Networks6   4.6 LSTM Netwoorks7   4.7 Clockwork RNNsCW-RNNs9 5 总结 6 参考博文 7 参考文献   这篇文章很多内容是参考: http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/ ,在这篇文章中,加入了一些新的内容与一些自己的理解。   循环神经网络(Recurrent Neural

论文阅记 Segmentation-Based Deep-Learning Approach for Surface-Defect

为君一笑 提交于 2020-01-19 15:01:39
  论文题目: Segmentation-Based Deep-Learning Approach for Surface-Defect   文献地址: https://arxiv.org/abs/1903.08536v3   源码地址: https://github.com/Wslsdx/Deep-Learning-Approach-for-Surface-Defect-Detection   最近接到表面缺陷检测的需求,在Github上查找Defect Detection开源代码时,“最先进的缺陷检测网络”赫然屹立于Github搜索结果的首位,还附带该代码对应的论文的题目,便前来膜拜。      Segmentation-Based Deep-Learning Approach for Surface-Defect ( 2019.06 )   这篇论文主要是利用分割模型和分类模型进行表面瑕疵的检测, 主要优势为 :只需要 25-30 个有缺陷的样本就可完成分类 ,所用样本极少。   从目标检测、目标追踪最先进的文献来看,效果最好的模型都是建立在分割(segmentation)的基础上,像目标检测中的Mask R-CNN、单目标追踪中的Siam Mask,均包含Mask的分支。正如Siam Mask一作王强所述:   更为本质的,我们会发现,这个 旋转的矩形框实际上就是 mask

docker和k8s网络模型复盘

元气小坏坏 提交于 2020-01-19 04:36:46
Docker K8S网络模型复盘 网络模式简介 常见网络模型 docker网络模式 默认模式Bridge详解 Kubernetes网络通信原理 Flannel NetWork原理: 网络模式简介 Docker和k8s跟着老师学了一遍,容器化技术及其编排如此强大,最近让我想不通的是docker及k8s的网络通信是如何实现的,无论是虚拟机还是物理机都有自己的ip,网卡,虚拟网卡等等,然而容器也有自己的ip地址,到了大规模容器编排的阶段,如此大量的容器网络访问管理,虽然了解到他们都有自己的网卡,k8s也有flannel来解决容器通信,但是仍感觉不够透彻,在此通过网上了解和学习理解进行一些梳理,不见得能够彻底理解,仅作复习。 常见网络模型 首先看一下虚拟机常用的网络模式: bridged(桥接模式) ,在桥接模式下,你需要手工为虚拟 系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机 系统,那么就可以手工配置它的TCP/IP配置信息,以实现通过局域网的网关或路由器访问互联网。 NAT(网络地址转换模式) ,在NAT网络中,会使用到VMnet8虚拟交换机,Host上的VMware Network Adapter VMnet8虚拟网卡被连接到VMnet8交换机上,来与Guest进行通信