TensorFlow实战Google深度学习框架5-7章学习笔记

/目录第5章MNIST数字识别问题第6章图像识别与卷积神经网络第7章图像数据处理  MNIST是一个非常有名的手写体数字识别数据集,在很多资料中,这个数据集都会被用作深度学习的入门样例。MNIST数据集是NIST数据集的一个子集,它包含了60000张图片作为训练数据,10000张图片作为测试数据。以下代码是使用TensorFlow读取MNIST数据集,如果本地不存在则自动下载到本地指定的目录,并打印数据集的训练集、验证集和测试集的维度大小。fromtensorflow.examples.tutorials.mnistimportinput_datamnist=input_data.read_data_sets("./MNIST_data/",one_hot=True)print("Trainingdatasize:",mnist.train.num_examples)print("Validatingdatasize:",mnist.validation.num_examples)print("Testingdatasize:",mnist.test.num_exa...

TensorFlow实战Google深度学习框架8-9章学习笔记

/目录第8章循环神经网络第9章自然语言处理  循环神经网络的主要用途是处理和预测序列数据。循环神经网络的来源就是为了刻画一个序列当前的输出与之前信息的关系。也就是说,循环神经网络的隐藏层之间的节点是有连接的,隐藏层的输入不仅包括输入层的输出,还包括上一时刻隐藏层的输出。下面给出一个长度为2的RNN前向传播示例代码:importnumpyasnpX=[1,2]state=[0.0,0.0]w_cell_state=np.asarray([[0.1,0.2],[0.3,0.4]])w_cell_input=np.asarray([0.5,0.6])b_cell=np.asarray([0.1,-0.1])w_output=np.asarray([[1.0],[2.0]])b_output=0.1foriinrange(len(X)):before_activation=np.dot(state,w_cell_state)+X[i]*w_cell_input+b_cellstate=np.tanh(before_activation)final_output=np.dot...

TensorFlow实战Google深度学习框架10-12章学习笔记

/目录第10章TensorFlow高层封装第11章TensorBoard可视化第12章TensorFlow计算加速  目前比较流行的TensorFlow高层封装主要有4个,分别是TensorFlow-Slim、TFLearn、Keras和Estimator。TensorFlow-Slim是Google官方给出的相对较早的TensorFlow高层封装,Google通过TensorFlow-Slim开源了一些已经训练好的图像分析模型,所以目前在图像识别问题中TensorFlow-Slim仍被较多地使用。与TesorFlow-Slim相比,TFLearn是一个更加简洁的TensorFlow高层封装。通过TFLearn可以更加容易地完成模型定义、模型训练以及模型评测的全过程。以下给出使用TFLearn在MNIST数据集上实现LeNet-5模型:importtflearnfromtflearn.layers.coreimportinput_data,dropout,fully_connectedfromtflearn.layers.convimportconv_2d,max_...

机器学习原来如此有趣:用深度学习识别人脸

本系列文章目前已经更新两期,分别是: 机器学习原来如此有趣!全世界最简单的机器学习入门指南、 机器学习原来如此有趣:如何故意欺骗神经网络 你是否有注意到Facebook最近开发了一个非同寻常的功能:将你照片中的好友识别出来。过去,Facebook让你手动点击照片上的好友,输入他们的名字,然后加上标签。现在只要你上传一张照片,Facebook就会像变魔术一样为你自动标记出所有人: 这项技术就叫做人脸识别。在你的朋友的脸被标记了几次之后,Facebook的算法就可以识别他了。这是一个让人惊艳的技术--Facebook识别人脸的正确率高达98%!这与人类的表现差不多了。 下面就让我们来学习一下人脸识别技术是如何实现的!但是只是识别你的朋友的脸就太简单了。我们可以最大化扩展这项技术,来解决一个更具挑战性的问题——区分威尔·法瑞尔(WillFerrell,著名演员)和查德·史密斯(ChadSmith,著名摇滚音乐家)!   人脸识别由一个系列的相关问题组成: 1.首先:查看一张照片并找出上面所有的脸2.将注...

深度学习在推断阶段(inference)的硬件实现方法概述

推断(Inference),就是深度学习把从训练中学习到的能力应用到工作中去。精心调整权值之后的神经网络基本上就是个笨重、巨大的数据库。为了充分利用训练的结果,完成现实社会的任务,我们需要的是一个能够保留学习到的能力,还能迅速应用到前所未见的数据上的,响应迅速的系统。这就是推断,根据真实世界中的少量数据,迅速地提供正确的答案。这可是计算机科学的全新领域。现在主要有两种方法来优化庞大笨拙的神经网络,以实现高速低延迟的应用。第一个方法,是查找神经网络中经过训练后并没有用到、也就是说尚未激活的部分。这些区域在应用中并不需要,所以可以被清洗掉。第二个方法,则是把神经网络中的多个层融合为一个单独的计算步骤。 众所周知,深度学习(deeplearning)在训练阶段完成模型的建立和参数调优,在推断阶段完成具体的实现及应用。这就好比造车的过程与开车的过程一样,造车过程需要不断尝试“新设计-试车-调优”,而设计一旦定型后,就需要大规模生产制造,最终卖给用户使用。设计车型(训练阶段)时候可以借助各种工具和技术来加速研发与达到更高指标,但生产制造(推断阶段)时需要考虑成本...

神经网络和深度学习概述

深度学习(deeplearning)是机器学习拉出的分支,它试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。深度学习是机器学习中一种基于对数据进行表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如,人脸识别或面部表情识别)。深度学习的好处是用非监督式的特征学习和分层特征提取高效算法来替代手工获取特征。至今已有数种深度学习框架,如深度神经网络、卷积神经网络和深度置信网络和递归神经网络已被应用计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。神经网络,一种启发自生物学的优美的编程范式,能够从观测到的数据中进行学习图像分类问题,这是从固定的一组分类中分配输入图像一个标签的任务。这是计算机视觉的核心问题之一,尽管它的简单性,有各种各样的实际应用。此外,正如我们将在后面看到的,许多其他看似不同的计算机视觉任务(如对象检测,分割)可以减少到图像分类。图像分类模型需要单个图像,并将概率分配给4个标签{ca...

图像理解与深度学习开篇

 不做图像理解已经将近2年,发现最近两年图像理解、模式识别与深度学习、人工智能领域十分的火,所以不想就此放弃自己的专业,特在此开辟一个类目,用于整理学习的东西。 应用领域:大数据分析;3D海量数据可视化;自动驾驶系统(UAV、CAR、etc.);机器人工业;工业检测;智慧水利。...

深度学习中常见问题

1.cai之前遇到一个事情就是:无论输入的图片是什么,结果都是一样的,并且同一个图片生成的多个框的类别也都是一样的 错误原因:test的网络没有进行caffemodel的初始化 之前在实验室跑deeplab代码也出现过类似问题,因为test的prototxt中有一层的名字和caffemodel中的不一样,导致了最后什么东西都不能检测出来,debug发现所有的类别都是0.5.可以发现这个问题有多严重,其他的层参数都赋值了,就只有一层没有正确赋值,就造成了这种情况...
代码星球 代码星球·2020-10-13

深度学习与非线性

一点关于深度神经网络和非线性之间的关系的问答。原文地址:https://blog.csdn.net/JNingWei/article/details/78866718定义:对“乘”、“加”运算闭合。作用:非线性很难形式化,但却是深度学习的核心竞争力。正是由于网络中强大的非线性因素,我们得以深度地抽象出特征。非线性函数主要存在于激活函数、bn、pooling层,用来增加模型容错能力(即防止过拟合)。   Note:假若网络中全部是线性部件,那么线性的组合其实还是线性,与单独一个线性分类器无异。这样就根本做不到用非线性来逼近任意函数。  我们在深度学习中讨论的线性和非线性到底是什么?原文地址:https://www.zhihu.com/question/300804166/answer/522866960这里说的线性和非线性其实就是线性代数里面的一样的,如前面知友说的就是f(x+y)=f(x)+f(y)而已,那么具体到你的问题为什么relu和maxpool可以产生非线性?例如有input,有一个1x1convolutionlayerf,然后...
代码星球 代码星球·2020-10-12

网络深度深度学习模型性能有什么影响?

原文地址:https://www.jianshu.com/p/72481d794a6b大家好,这是专栏《AI不惑境》的第二篇文章,讲述模型深度与模型性能的关系。进入到不惑境界,就是向高手迈进的开始了,在这个境界需要自己独立思考。如果说学习是一个从模仿,到追随,到创造的过程,那么到这个阶段,应该跃过了模仿和追随的阶段,进入了创造的阶段。从这个境界开始,讲述的问题可能不再有答案,更多的是激发大家一起来思考。作者&编辑|言有三深度学习模型之所以在各种任务中取得了成功,足够的网络深度起到了很关键的作用,那么是不是模型越深,性能就越好呢? 1为什么加深可以提升性能Bengio和LeCun在2017年的文章[1]中有这么一句话,"Weclaimthatmostfunctionsthatcanberepresentedcompactlybydeeparchitecturescannotberepresentedbyacompactshallowarchitecture",大体意思就是大多数函数如果用一个深层结构刚刚好解决问题,那么就不可能用一个更浅的同样紧凑的结构来解决。要解决比较...

深度学习中的各种卷积

原文地址:http://www.sohu.com/a/298275731_468638如果你听过深度学习中不同的卷积类型,包括:2D/3D/1*1/Ttransposed/Dilated/SpatiallySeparable/DepthwiseSeparable/Flattened/Grouped/ShuffledGroupedConvolution这些,但是并不清楚它们实际意味着什么,本文就是带大家学习这些卷积到底是如何工作的。在本文中,我尽量使用简单明了的方式向大家解释深度学习中常用的几种卷积,希望能够帮助你建立学习体系,并为你的研究提供参考。ConvolutionVSCross-correlation卷积是一项在信号处理、视觉处理或者其他工程/科学领域中应用广泛的技术。在深度学习中,有一种模型架构,叫做ConvolutionNeuralNetwork。深度学习中的卷积本质上就是信号处理中的Cross-correlation。当然,两者之间也存在细微的差别。在信号/图像处理中,卷积定义如下:由上公式可以看出,卷积是通过两个函数f和g生成第三个函数的一种数学算子。对f与经过翻转和平移...

深度学习时代的图模型,清华发文综述图网络

原文地址:https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650754422&idx=4&sn=0dc881487f362322a875b4ce06e645f7&chksm=871a8908b06d001ef7386ccc752827c20711877a4a23d6a8318978095dd241d118257c607b22&scene=21#wechat_redirect深度学习在多个领域中实现成功,如声学、图像和自然语言处理。但是,将深度学习应用于普遍存在的图数据仍然存在问题,这是由于图数据的独特特性。近期,该领域出现大量研究,极大地提升了图分析技术。清华大学朱文武等人综述了应用于图的不同深度学习方法。 他们将现有方法分为三个大类:半监督方法,包括图神经网络和图卷积网络;无监督方法,包括图自编码器;近期新的研究方法,包括图循环神经网络和图强化学习。然后按照这些方法的发展史对它们进行系统概述。该研究还分析了这些方法的区别,以及如何合成不同的架构。最后,该研究简单列举了这些方...

深度学习基础——Epoch、Iteration、Batchsize

原文地址:https://www.cnblogs.com/Johnny-z6951/p/11201081.html梯度下降是一个在机器学习中用于寻找较佳结果(曲线的最小值)的迭代优化算法。梯度的含义是斜率或者斜坡的倾斜度。下降的含义是代价函数的下降。算法是迭代的,意思是需要多次使用算法获取结果,以得到最优化结果。梯度下降的迭代性质能使欠拟合演变成获得对数据的较佳拟合。  梯度下降中有一个称为学习率的参量。刚开始学习率较大,因此下降步长更大。随着点的下降,学习率变得越来越小,从而下降步长也变小。同时,代价函数也在减小,或者说代价在减小,有时候也称为损失函数或者损失,两者是一样的。(损失/代价的减小是一个概念)。只有在数据很庞大的时候,我们才需要使用epochs,batchsize,iteration。在这种情况下,一次性将数据输入计算机是不可能的。因此,为了解决这个问题,我们需要把数据分成小块,一块一块的传递给计算机,在每一步的末端更新神经网络的权重,拟合给定的数据。 batchsize:批量大小(批量尺寸)。  即,批量大小将决定我们一次训练的样本数目。batchsize将影...

深度学习----现今主流GAN原理总结及对比

原文地址:https://blog.csdn.net/Sakura55/article/details/815148281.GAN先来看看公式:           GAN网络主要由两个网络构成,生成网络G和辨别网络D,生成模型G的思想是将一个噪声包装成一个逼真的样本,判别模型D则需要判断送入的样本是真实的还是假的样本,即共同进步的过程,辨别模型D对样本的判别能力不断上升,生成模型G的造假能力也不断上升!            需要注意的是,生成模型G的输入是服从-1~1均匀分布的随机变量,输出为一张图片(或者其他,这里我们需要图片而已),因此,生成网络的结构是一个反卷积网络,即对应CNN中的可视化操作,由随机变量生成图片的过程!           ...

深度学习之自编码器AutoEncoder

原文地址:https://blog.csdn.net/marsjhao/article/details/73480859一、什么是自编码器(Autoencoder)自动编码器是一种数据的压缩算法,其中数据的压缩和解压缩函数是数据相关的、有损的、从样本中自动学习的。在大部分提到自动编码器的场合,压缩和解压缩的函数是通过神经网络实现的。1)自动编码器是数据相关的(data-specific或data-dependent),这意味着自动编码器只能压缩那些与训练数据类似的数据。比如,使用人脸训练出来的自动编码器在压缩别的图片,比如树木时性能很差,因为它学习到的特征是与人脸相关的。2)自动编码器是有损的,意思是解压缩的输出与原来的输入相比是退化的,MP3,JPEG等压缩算法也是如此。这与无损压缩算法不同。3)自动编码器是从数据样本中自动学习的,这意味着很容易对指定类的输入训练出一种特定的编码器,而不需要完成任何新工作。搭建一个自动编码器需要完成下面三样工作:搭建编码器,搭建解码器,设定一个损失函数,用以衡量由于压缩而损失掉的信息。编码器和解码器一般都是参数化的方程,并关于损失函数可导,典型情况是...
首页上一页...45678...下一页尾页