转移学习

了解有关转移学习及其实施方法的信息。 什么是转学? 在构建计算机视觉应用程序时,我们可以下载预先训练好的深度学习架构及其权重,并将其应用于新的问题领域,而无需随机初始化权重并从头进行训练。 它是如何工作的? 例如:如果我们想使用很少的训练示例来构建仅包含2个类别的cat分类器,则可以下载在ImageNet上训练的深度学习架构的开源实现,该架构具有1000个类别。 为了开始在我们的cat图像数据集上重新训练网络,我们可以摆脱现有的预测1000个类别之一的softmax图层,并创建我们自己的预测2个类别之一的softmax图层,我们还应该冻结休息网络中各层的数量,这意味着,除了softmax层的参数外,我们不会训练冻结层的参数。 下图更好地说明了这一点: 冻结除我们创建的输出层(softmax层)以外的所有层。 在开始重新训练过程之前,我们还应该为我们的训练示例计算最后冻结层的​​激活并将其保存到磁盘。 这将加快与softmax层(输出层)关联的权重的训练。 看下面的图片(紫色箭头) 如果我们有一个庞大的数据集怎么办? 冻结更少的层,然后重新训练后面的层。 冻结更少的图层并创建新的图层,然后对其进行重新训练。 使用预训练的权重进行初始化,然后重新训练整个网络。 实施实例 查看我关于使用Tensorflow进行转移学习的github回购。 点击这里…

TensorFlow#3的最简要介绍:矩阵和多特征线性回归

简介 :利用单特征线性回归,成本函数,梯度下降(来自第1部分),时期,学习率,梯度下降变化(来自第2部分)的概念,我们已经准备好迈向多特征使用TensorFlow(TF)进行线性回归。 如果您已经熟悉矩阵和多元线性回归,请跳至多元Tensorflow代码备忘单的最后,甚至跳过整篇文章。 这是系列的一部分: 第1部分:使用Tensorflow进行单特征单结果模型的线性回归 第2部分:以图表/代码说明的Tensorflow训练,并探讨训练方法的变化 第3部分(本文):使用Tensorflow的矩阵和多特征线性回归 第4部分:使用Tensorflow进行逻辑回归 快速复审 先前文章的前提是:给定任何房屋面积(平方米/平方米),这就是功能,我们要预测房屋价格(美元)和结果。 为此,我们: 我们找到一条“最适合”我们所拥有数据点的直线(线性回归)。 “最佳拟合”是指线性回归线确保实际数据点(灰点)与预测值(插在直线上的灰点)之间的差,换句话说,是多条蓝线被最小化。 通过这条直线,我们可以预测房屋的任何价值 使用单特征线性回归进行预测 多元线性回归概述 实际上,任何预测都依赖于多个特征,因此我们从单特征线性回归为2特征线性回归。 我们选择了2个功能部件以保持可视化和理解的简单性,但是该概念可以推广到任意数量的功能部件。…

将模型移植到TensorFlow

TensorFlow是一系列框架的最新成员,这些框架旨在加速构建深层模型的过程。 其中,我以前只是有时间学习Theano-Theano在这个相当年轻的领域中比较古老的框架之一。 就像TensorFlow一样,Theano使用Python作为元编程语言来象征性地描述模型-将这两个张量相加; 在该轴上取平均值,然后对其进行微分,以确保参数优化易处理且高效。 但是,与TensorFlow不同,Theano要求最终用户重新实现很多经常在模型中出现的标准组件,尤其是优化器,成本计算以及诸如dropout(通常与softmax结合使用)之类的东西。 这两个库还允许混合使用GPU和CPU代码生成。 但是,除了样式,哪种框架可以帮助您快速获得结果? 哪个更容易编程? 哪个生产模型可以快速训练? TensorFlow提供了一个不错的API,许多内置功能以及强大的设备模型和集成的集群感知能力,而Theano提供了更积极的计算图优化和许多可调参数。 那么,总而言之,哪一个提供了性能和生产率的最佳融合? 德古拉介绍 为了找出答案,我决定从Theano到TensorFlow移植一个相当简单的自然语言模型-Dracula。 Dracula是基于LSTM的序列标记器(最初的应用是词性标记),可在单个字符级别上运行,从而缩小了模型的范围,并减少了对诸如阈值稀有词,建立专有名词的字典之类的预处理操作的需求。 ,过滤表情符号和其他预处理,这些都不太可能对验证环境之外的性能有所帮助,这意味着它对结构化较弱的环境(例如Twitter)非常有用。 德古拉(Dracula)有几个主要步骤: 生成字符嵌入输入; 在字符级别,每个单词应用零个或多个LSTM层;…