智能平台

TensorFlow 深度学习中文第二版(初稿)

纵然是瞬间 提交于 2019-11-30 05:41:30
TensorFlow 深度学习中文第二版 第 1 章深度学习入门 人工神经网络 ANN 如何学习? 神经网络架构 深度学习框架 总结 第 2 章 TensorFlow 的首次观察 TensorFlow v1.6 的新功能是什么? 安装和配置 TensorFlow TensorFlow 计算图 TensorFlow 代码结构 TensorFlow 中的数据模型 通过 TensorBoard 可视化计算 线性回归及更多 总结 第 3 章使用 TensorFlow 的前馈神经网络 实现前馈神经网络 实现多层感知器(MLP) 调整超参数和高级 FFNN 总结 第 4 章卷积神经网络 CNN 实战 LeNet5 逐步实现 LeNet-5 数据集准备 微调实现 Inception-v3 使用 CNN 进行情感识别 总结 第 5 章优化 TensorFlow 自编码器 使用 TensorFlow 实现自编码器 提高自编码器的鲁棒性 使用自编码器进行欺诈分析 总结 第 6 章循环神经网络 RNN 和梯度消失 - 爆炸问题 实现 RNN 进行垃圾邮件预测 开发时间序列数据的预测模型 用于情感分析的 LSTM 预测模型 使用 LSTM 模型识别人类活动 总结 第 7 章异构和分布式计算 TensorFlow GPU 设置 分布式计算 分布式 TensorFlow 设置 总结 第 8 章高级

通俗话说一说各种Normalization以及用deeplearning4j实现Layer Normalization

寵の児 提交于 2019-11-30 03:52:15
一、Normalization是什么 Normalization一句话概括来说就是用一种办法,将一组数据压到均值为0,方差为1的正态分布上去,具体做法是数据集的每一个元素减去均值再除以标准差。公式如下:(请忽略参数g,g的问题很诡异,后面说) 这个公式说的更直白一点就是,把每一个a,经过平移和缩放,得到一个新值。而这样做的一个理由是,平移缩放并不会改变原始数据的分布情况,原来最大的还是最大,原来最小的还是最小。 Deeplearning中有很多Normalization的方法,有BN、LN、IN、GN等等,每一种Normalization公式都一样,只是沿着的轴不一样,BN就是沿着minibatch方向,LN就是沿着影藏层的output vector维方向,举个例子,对于四维张量[minibatch,depth、height、width],那就是沿着depth方向,把height、width维约简掉。 二、说说Layer Normalization Layer Normalization对于时间序列数据有奇效,下面截一段论文的原文。这是在RNN上用Layer Normalization 简短的话说一下论文的变量含义,a表示t时刻点rnn的预输出值(还没有经过激活函数哦),h表示rnn某一个隐层t时刻点的输出。 那么,这里Normalization是哪一个维度呢

AlexNet

雨燕双飞 提交于 2019-11-30 03:47:02
1.论文地址 AlexNet 2.网络结构 3.AlexNet特点 使用非线性激活函数:ReLU(LeNet中用的是sigmoid),提高训练速度 防止过拟合方法:Dropout(最后两个全连接层)、Data argumentation 重叠池化:Max Pooling 局部归一化(LRN):但在ZF-Net中作者通过实验认为LRN没有用 4.动量梯度下降 5.卷积后输出图像尺寸 N = (W-F+2P)/S+1 W:原图像尺寸 F:kernel尺寸 P:填充像素数 S:kernel移动步长 N:输出图像尺寸 6. AlexNet with TensorFlow 文本讲解: 使用tensorflow实现AlexNet 具体代码: Alex with Tensorflow 遇到的问题:运行时遇到No module named absl,pip安装后 出现已安装,所以是版本过低的原因,执行:python -m pip install --upgrade absl-py即可 实验结果: 来源: https://my.oschina.net/u/4215564/blog/3108265

ElasticDL:蚂蚁金服开源基于 TensorFlow 的弹性分布式深度学习系统

て烟熏妆下的殇ゞ 提交于 2019-11-29 19:22:49
9 月 11 日,蚂蚁金服在2019谷歌开发者大会上海站上开源了 ElasticDL 项目,这是业界首个基于 TensorFlow 实现弹性深度学习的开源系统。 开源地址为: https://github.com/sql-machine-learning/elasticdl/ 开源中国采访了 ElasticDL 项目负责人王益,对该深度学习系统的技术细节进行了全面介绍。 基于 TensorFlow 2.0 和 Kubernetes实现弹性深度学习 这个基于 Eager Execution 模式的开源项目名为“ElasticDL”,它是一个Kubernetes 原生深度学习框架,根据介绍,ElasticDL 主要有四大特点: 容错性 弹性调度 易用性 高效 其中又以容错与弹性调度特性最具特色。 ElasticDL 实现了容错和弹性调度的分布式深度学习,可以极大提升集群的总体利用率,同时显著减少用户提交作业之后等待作业启动的时间(pending time)。 王益介绍:“ElasticDL 是我们知道的第一个基于 TensorFlow 实现弹性深度学习的开源系统。具体地说,ElasticDL 是基于 TensorFlow 2.0 和 Kubernetes 实现弹性深度学习的。” 集群效用从 1/N 到 N/N 在深度学习技术研发的早期,公用一个计算集群的人相对少,

精通 TensorFlow 1.x 中文版(初稿)

人盡茶涼 提交于 2019-11-29 18:55:43
TensorFlow 101 什么是 TensorFlow? TensorFlow 核心 代码预热 - Hello TensorFlow 张量 常量 操作 占位符 从 Python 对象创建张量 变量 从库函数生成的张量 使用相同的值填充张量元素 用序列填充张量元素 使用随机分布填充张量元素 使用 tf.get_variable() 获取变量 数据流图或计算图 执行顺序和延迟加载 跨计算设备执行图 - CPU 和 GPU 将图节点放置在特定的计算设备上 简单放置 动态展示位置 软放置 GPU 内存处理 多个图 TensorBoard TensorBoard 最小的例子 TensorBoard 详情 总结 TensorFlow 的高级库 TF Estimator - 以前的 TF 学习 TF Slim TFLearn 创建 TFLearn 层 TFLearn 核心层 TFLearn 卷积层 TFLearn 循环层 TFLearn 正则化层 TFLearn 嵌入层 TFLearn 合并层 TFLearn 估计层 创建 TFLearn 模型 TFLearn 模型的类型 训练 TFLearn 模型 使用 TFLearn 模型 PrettyTensor Sonnet 总结 Keras 101 安装 Keras Keras 中的神经网络模型 在 Keras 建立模型的工作流程 创建 Keras

【AI实战】手把手教你训练自己的目标检测模型(SSD篇)

谁说胖子不能爱 提交于 2019-11-29 14:54:27
目标检测是AI的一项重要应用,通过目标检测模型能在图像中把人、动物、汽车、飞机等目标物体检测出来,甚至还能将物体的轮廓描绘出来,就像下面这张图,是不是很酷炫呢,嘿嘿 在动手训练自己的目标检测模型之前,建议先了解一下目标检测模型的原理(见文章: 大话目标检测经典模型RCNN、Fast RCNN、Faster RCNN , 以及Mark R-CNN ),这样才会更加清楚模型的训练过程。 本文将在我们前面搭建好的AI实战基础环境上(见文章: AI基础环境搭建 ),基于SSD算法,介绍如何使用自己的数据训练目标检测模型。 SSD,全称Single Shot MultiBox Detector(单镜头多盒检测器) ,是Wei Liu在ECCV 2016上提出的一种目标检测算法,是目前流行的主要检测框架之一。 本案例要做的识别便是在图像中识别出熊猫,可爱吧,呵呵 下面按照以下过程介绍如何使用自己的数据训练目标检测模型: 1、安装标注工具 要使用自己的数据来训练模型,首先得先作数据标注,也就是先要告诉机器图像里面有什么物体、物体在位置在哪里,有了这些信息后才能来训练模型。 (1)标注数据文件 目前流行的数据标注文件格式主要有VOC_2007、VOC_2012,该文本格式来源于Pascal VOC标准数据集,这是衡量图像分类识别能力的重要基准之一。本文采用VOC_2007数据格式文件

【AI实战】训练第一个AI模型:MNIST手写数字识别模型

…衆ロ難τιáo~ 提交于 2019-11-29 14:54:11
在上篇文章中,我们已经把AI的基础环境搭建好了(见文章: Ubuntu + conda + tensorflow + GPU + pycharm搭建AI基础环境 ),接下来将基于tensorflow训练第一个AI模型: MNIST手写数字识别模型 。 MNIST是一个经典的手写数字数据集,来自美国国家标准与技术研究所,由不同人手写的0至9的数字构成,由60000个训练样本集和10000个测试样本集构成,每个样本的尺寸为28x28,以二进制格式存储,如下图所示: MNIST手写数字识别模型的主要任务是: 输入一张手写数字的图像,然后识别图像中手写的是哪个数字。 该模型的目标明确、任务简单,数据集规范、统一,数据量大小适中,在普通的PC电脑上都能训练和识别,堪称是深度学习领域的“Hello World!”,学习AI的入门必备模型。 0、AI建模主要步骤 在构建AI模型时,一般有以下主要步骤:准备数据、数据预处理、划分数据集、配置模型、训练模型、评估优化、模型应用,如下图所示: 下面将按照主要步骤进行介绍。 【注意】 由于MNIST数据集太经典了,很多深度学习书籍在介绍该入门模型案例时,基本上就是直接下载获取数据,然后就进行模型训练,最后得出一个准确率出来。但这样的入门案例学习后,当要拿自己的数据来训练模型,却往往不知该如何处理数据、如何训练、如何应用。在本文,将分两种情况进行介绍:(1

【AI实战】快速掌握Tensorflow(一):基本操作

别来无恙 提交于 2019-11-29 14:53:47
Tensorflow是Google开源的深度学习框架,来自于Google Brain研究项目,在Google第一代分布式机器学习框架DistBelief的基础上发展起来。Tensorflow于2015年11月在GitHub上开源,在2016年4月补充了分布式版本,最新版本为1.10,2018年下半年将发布Tensorflow 2.0预览版。Tensorflow目前仍处于快速开发迭代中,不断推出新功能和优化性能,现已成为当今世界上最受欢迎的开源机器学习框架,是学习研究AI的必备神器。 接下来,将推出 “快速掌握Tensorflow”的系列文章 ,带你快速入门掌握Tensorflow。 1、Tensorflow是什么? Tensorflow是当前最流行的深度学习框架,它既是一个实现深度学习算法的接口,也是执行深度学习算法的框架。Tensorflow前端支持Python、C++、Java、Go等语言,后端使用C++、CUDA等写成,可在众多系统上运行,包括Windows、Mac、Linux、Android、IOS等。 Tensorflow的官方网址为 http://www.tensorflow.org Tensorflow的GitHub网址为 https://github.com/tensorflow/tensorflow 2、Tensorflow有什么特点?

【AI实战】手把手教你文字识别(检测篇二:AdvancedEAST、PixelLink方法)

那年仲夏 提交于 2019-11-29 09:06:01
自然场景下的文字检测是深度学习的重要应用,在之前的文章中已经介绍过了在简单场景、复杂场景下的文字检测方法,包括MSER+NMS、CTPN、SegLink、EAST等方法,详见文章: 【AI实战】手把手教你文字识别(检测篇一: MSER、CTPN、SegLink、EAST方法) 今天将继续介绍复杂场景下基于深度学习的文本检测方法,手把手教你如何使用AdvancedEAST、PixelLink进行文本检测。 1、AdvancedEAST方法实战 在上一篇文本检测的AI实战文章中,介绍了EAST检测方式,取得了不错的检测效果,但是在长文本预测中效果还不是很理想。于是,有大牛对EAST检测方法进行了改进,获得了比EAST更好的预测准确性(特别是在长文本上),并开源了源代码,这就是AdvancedEAST方法。网络结构如下: AdvancedEAST的网络结构与EAST相似(EAST技术原理详见文章: 大话文本检测经典模型EAST ),但采用了VGG作为网络主干结构,基于Keras编写,在特征提取层中增加了后面卷积层的通道数量,对后处理方法也进行了优化。下面动手来试试AdvancedEAST的实际检测效果吧。 (1)下载源代码 首先,在github上下载AdvancedEAST源代码(https://github.com/huoyijie/AdvancedEAST)

【AI实战】快速掌握TensorFlow(四):损失函数

非 Y 不嫁゛ 提交于 2019-11-29 09:05:43
在前面的文章中,我们已经学习了 TensorFlow 激励函数的操作使用方法(见文章: 快速掌握 TensorFlow (三) ),今天我们将继续学习 TensorFlow 。 本文主要是 学习掌握 TensorFlow 的损失函数。 一、什么是损失函数 损失函数(loss function)是机器学习中非常重要的内容,它是度量模型输出值与目标值的差异,也就是作为评估模型效果的一种重要指标,损失函数越小,表明模型的鲁棒性就越好。 二、怎样使用损失函数 在TensorFlow中训练模型时,通过损失函数告诉TensorFlow预测结果相比目标结果是好还是坏。在多种情况下,我们会给出模型训练的样本数据和目标数据,损失函数即是比较预测值与给定的目标值之间的差异。 下面将介绍在TensorFlow中常用的损失函数。 1、回归模型的损失函数 首先讲解回归模型的损失函数,回归模型是预测连续因变量的。为方便介绍,先定义预测结果(-1至1的等差序列)、目标结果(目标值为0),代码如下: import tensorflow as tf sess=tf.Session() y_pred=tf.linspace(-1., 1., 100) y_target=tf.constant(0.) 注意,在实际训练模型时,预测结果是模型输出的结果值,目标结果是样本提供的。 (1)L1正则损失函数(即绝对值损失函数)