TensorFlow是谷歌2015年开源的主流深度学习框架,目前已得到广泛应用.<TensorFlow:实战Google深度学习框架(第2版)>为TensorFlow入门参考书,帮助快速.有效的方式上手TensorFlow和深度学习.书中省略了烦琐的数学模型推导,从实际应用问题出发,通过具体的TensorFlow示例介绍如何使用深度学习解决实际问题.书中包含深度学习的入门知识和大量实践经验,是走进这个前沿.热门的人工智能领域的优选参考书. 第2版将书中所有示例代码从TensorFlow 0.9…
本系列为Tensorflow实战Google深度学习框架知识笔记,仅为博主看书过程中觉得较为重要的知识点,简单摘要下来,内容较为零散,请见谅. 2017-11-06 [第五章] MNIST数字识别问题 1. MNIST数据处理 为了方便使用,Tensorflow提供了一个类来处理MNIST数据,这个类会自动下载并转化MNIST数据的格式,将数据从原始的数据包中解析成训练和测试神经网络时使用的格式. 2. 神经网络模型训练及不同模型结果对比 为了评测神经网络模型在不同参数下的效果,一般会从训练数据…
学习过程是Tensorflow 实战google深度学习框架一书的第六章的迁移学习环节. 具体见我提出的问题:https://www.tensorflowers.cn/t/5314 参考https://blog.csdn.net/zhuiqiuk/article/details/53376283后,对代码进行了修改. 问题的跟踪情况记录: 1 首先是保存模型: import tensorflow as tf from tensorflow.python.framework import grap…
一.TensorFlow实战Google深度学习框架学习 1.步骤: 1.定义神经网络的结构和前向传播的输出结果. 2.定义损失函数以及选择反向传播优化的算法. 3.生成会话(session)并且在训练数据上反复运行反向传播优化算法. 2.代码: 来源:https://blog.csdn.net/longji/article/details/69472310 import tensorflow as tf from numpy.random import RandomState # 1. 定义神…
自学人工智能的第一天 "TensorFlow 是谷歌 2015 年开源的主流深度学习框架,目前已得到广泛应用.本书为 TensorFlow 入门参考书,旨在帮助读者以快速.有效的方式上手 TensorFlow 和深度学习.书中省略了烦琐的数学模型推导,从实际应用问题出发,通过具体的 TensorFlow 示例介绍如何使用深度学习解决实际问题.书中包含深度学习的入门知识和大量实践经验,是走进这个前沿.热门的人工智能领域的优选参考书 . “互联网+”的大潮催生了诸如“互联网+外卖”.“互联网+打车”…
目录 第10章 TensorFlow高层封装 第11章 TensorBoard可视化 第12章 TensorFlow计算加速 第10章 TensorFlow高层封装 目前比较流行的TensorFlow高层封装主要有4个,分别是TensorFlow-Slim.TFLearn.Keras和Estimator. TensorFlow-Slim是Google官方给出的相对较早的TensorFlow高层封装,Google通过TensorFlow-Slim开源了一些已经训练好的图像分析模型,所以目前在图像识…
目录 第5章 MNIST数字识别问题 第6章 图像识别与卷积神经网络 第7章 图像数据处理 第5章 MNIST数字识别问题 MNIST是一个非常有名的手写体数字识别数据集,在很多资料中,这个数据集都会被用作深度学习的入门样例.MNIST数据集是NIST数据集的一个子集,它包含了60000张图片作为训练数据,10000张图片作为测试数据.以下代码是使用TensorFlow读取MNIST数据集,如果本地不存在则自动下载到本地指定的目录,并打印数据集的训练集.验证集和测试集的维度大小. from te…
目录 第1章 深度学习简介 第2章 TensorFlow环境搭建 第3章 TensorFlow入门 第4章 深层神经网络   第1章 深度学习简介 对于许多机器学习问题来说,特征提取不是一件简单的事情.在一些复杂问题上,要通过人工的方式设计有效的特征集合,需要很多的时间和精力,有时甚至需要整个领域数十年的研究投入. 深度学习解决的核心问题之一就是自动地将简单的特征组合成更加复杂的特征.并使用这些组合特征解决问题.深度学习是机器学习的一个分支,它除了可以学习特征和任务之间的关联,还能自动从简单特征…
第一章:深度学习简介   1⃣️应用有 1.计算机视觉 2.语音识别 3.自然语言处理 4.人机博弈   2⃣️深度学习,机器学习,AI 的关系…
神经网络的优化方法: 1.学习率的设置(指数衰减) 2.过拟合问题(Dropout) 3.滑动平均模型(参数更新,使模型在测试数据上更鲁棒) 4.批标准化(解决网络层数加深而产生的问题---如梯度弥散,爆炸等) 一.学习率的设置----指数衰减方法 通过指数衰减的方法设置GD的学习率.该方法可让模型在训练的前期快速接近较优解,又可保证模型在训练后期不会有太大的波动,从而更加接近局部最优. 学习率不能过大,可能让参数在极值两侧波动,不能过小,训练时间会过长. TensorFlow提供的方法:tf.…
为了实现迁徙学习,首先是数据集的下载 #利用curl下载数据集 curl -o flower_photos.tgz http://download.tensorflow.org/example_images/flower_photos.tgz #在当前路径下对下载的数据集进行解压 tar xzf flower_photos.tgz 下载谷歌提供的训练好的Inception-v3模型 wget -P /Volumes/Cu/QianXi_Learning --no-check-certificat…
kaggle竞赛的inception模型已经能够提取图像很好的特征,后续训练出一个针对当前图片数据的全连接层,进行花的识别和分类.这里见书即可,不再赘述. 书中使用google参加Kaggle竞赛的inception模型重新训练一个全连接神经网络,对五种花进行识别,我姑且命名为模型flower_photos_model.我进一步拓展,将lower_photos_model模型进一步保存,然后部署和应用.然后,我们直接调用迁移之后又训练好的模型,对花片进行预测. 这里讨论两种方式:使用import…
一.TensorFlow的主要依赖包 1.Protocol Buffer Protocol Buffer负责将结构化的数据序列化,并从序列化之后的数据流中还原出原来的结构化数据.TensorFlow中的数据基本都是通过Protocol Buffer来组织的. 结构化数据: name: 张三 id: email: zhangsan@abc.com Protocol Buffer格式的序列化数据: message user{ optional ; required int32 id = ; repe…
目录 第8章 循环神经网络 第9章 自然语言处理 第8章 循环神经网络 循环神经网络的主要用途是处理和预测序列数据.循环神经网络的来源就是为了刻画一个序列当前的输出与之前信息的关系.也就是说,循环神经网络的隐藏层之间的节点是有连接的,隐藏层的输入不仅包括输入层的输出,还包括上一时刻隐藏层的输出.下面给出一个长度为2的RNN前向传播示例代码: import numpy as np X = [1,2] state = [0.0, 0.0] w_cell_state = np.asarray([[0.…
import os import tab import tensorflow as tf print "tensorflow 5.2 " from tensorflow.examples.tutorials.mnist import input_data ''' mnist = input_data.read_data_sets("/asky/tensorflow/mnist_data",one_hot=True) print "-------------…
第一处: 书中62页定义的交叉熵函数定义有误,虽然这个所谓交叉熵的数值能够减少,但是是不能提升预测性能的,因为定义就错了. 我已经将预测过程可视化,直接将交叉熵改为我的,或者用原书的,就可以看到预测结果的变化. 第二处: 150页,lenet第三层卷积层的连接数目是(10*10*16*(5*5*6+1))=241600.因为本层输入矩阵的深度是6,输出矩阵的每个节点要与6个滤波器尺寸大小的矩阵产生联系. 程序下载: https://pan.baidu.com/s/1E8UIyd75gg6Z4Hp…
一.卷积神经网络的简述 卷积神经网络将一个图像变窄变长.原本[长和宽较大,高较小]变成[长和宽较小,高增加] 卷积过程需要用到卷积核[二维的滑动窗口][过滤器],每个卷积核由n*m(长*宽)个小格组成,每个小格都有自己的权重值, 长宽变窄:过滤器的长宽决定的 高度变高:过滤器的个数决定的 输入:55000 × 784 = 28*28 输出:55000 × 10 lenet:两层卷积层(卷积层 + 池化层).两层全连接层 二.代码: 1.数据集: 下载好Mnist数据集加压到文件夹'MNIST_d…
一.创建一个队列: FIFOQueue:先进先出 RandomShuffleQueue:会将队列中的元素打乱,每次出列操作得到的是从当前队列所有元素中随机选择的一个. 二.操作一个队列的函数: enqueue.enqueue_many.dequeue import tensorflow as tf #创建一个先进先出队列,指定队列中最多可以保存两个元素,并指定类型为整数 q = tf.FIFOQueue ( 2, "int32" ) #使用enqueue_many 函数来初始化队列中的…
一.Tensorflow计算模型:计算图 计算图是Tensorflow中最基本的一个概念,Tensorflow中的所有计算都被被转化为计算图上的节点. Tensorflow是一个通过计算图的形式来描述计算的编程系统.Tensor指张量(多维数组:表明了它的数据结构),Flow指计算图(直观地表达了张量之间通过计算相互转化的过程).Tensorflow中的每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系. 为了建模方便,tf将常量转化成一种永远输出固定值的运算. Tenso…
模型:双层神经网络 [一层隐藏层.一层输出层]隐藏层输出用relu函数,输出层输出用softmax函数 过程: 设置参数 滑动平均的辅助函数 训练函数 x,y的占位,w1,b1,w2,b2的初始化 前向传播[y = w * x +b,w和b采用滑动平均更新] 后向传播[计算loss(包括交叉熵和正则化loss),采用GD更新参数(学习率使用指数衰减)] 迭代训练数据 代码: #参数设置 #输入.隐藏层神经元数.输出 samples = 55000 input_size = 784 output_…
1.分类问题(交叉熵): (1)模型: (2)代码1: 其中,tf.clip_by_value是将一个张量的数值限制在一个范围之内,若小于1e-10则赋值为1e-10,若大于1.0则赋值为1,这样避免出现log0这种错误或大于1的概率. reduce_mean()函数是取对一个batch的交叉熵取平均运算.reduce_mean计算之前得到的结果是一个n×m的二维矩阵[每一个样本的每一类别交叉熵],其中n为一个batch中样本数量,m为分类的类别数量.交叉熵模型中应将每行中的m个结果相加得到所有…
参考书 <TensorFlow:实战Google深度学习框架>(第2版) 这本书我老老实实从头到尾看了一遍(实际上是看到第9章,刚看完,后面的实在看不下去了,但还是会坚持看的),所有的代码都是手敲了一遍.这本书对于想TensorFlow入门的小伙伴来说,可以看到第8章了解一下循环神经网络的原理,第8章最后的例子举的真的是很烂,用循环神经网络去预测sin函数曲线,我是真的佩服这种例子都能想得出来.循环神经网络,不应该找一个经典的,与时间有关的具有时间累积效应的例子之类的吗,比如说钢材随时间的损坏…
目录 三.TensorFlow入门 1. TensorFlow计算模型--计算图 I. 计算图的概念 II. 计算图的使用 2.TensorFlow数据类型--张量 I. 张量的概念 II. 张量的使用 3.会话 4.TensorFlow实现神经网络 I. 前向传播算法 II. 神经网络参数与TensorFlow变量 III. 用TF训练神经网络 四.深层神经网络 1. 深度学习与深度神经网络 I. 线性模型的局限性 II. Activation去线性化 III. 多层网络解决异或运算 2. L…
深度学习:两个重要特性:多层和非线性 线性模型:任意线性模型的组合都是线性模型,只通过线性变换任意层的全连接神经网络与单层神经网络没有区别. 激活函数:能够实现去线性化(神经元的输出通过一个非线性函数). 多层神经网络:能够解决异或问题,深度学习有组合特征提取的功能. 使用激活函数和偏置项的前向传播算法 import tensorflow as tf a = tf.nn.relu(tf.matmul(x,w1) + biases1) y = tf.nn.relu(tf.matmul(a,w2)…
tensorflow的计算模型:计算图–tf.Graph tensorflow的数据模型:张量–tf.Tensor tensorflow的运行模型:会话–tf.Session tensorflow可视化工具:TensorBoard 通过集合管理资源:tf.add_to_collection.tf.get_collection Tensor主要三个属性:名字(name).维度(shape).类型(type) #张量,可以简单的理解为多维数组 import tensorflow as tf a =…
import os import tab import tensorflow as tf from numpy.random import RandomState print "hello tensorflow 4.1" batch_size = 8 x = tf.placeholder(tf.float32,shape=(None,2),name='x-input') y_ = tf.placeholder(tf.float32,shape=(None,1),name='y-inpu…
1.学习率的设置既不能太小,又不能太大,解决方法:使用指数衰减法 例如: 假设我们要最小化函数 y=x2y=x2, 选择初始点 x0=5x0=5  1. 学习率为1的时候,x在5和-5之间震荡. import tensorflow as tf TRAINING_STEPS = 10 LEARNING_RATE = 1 x = tf.Variable(tf.constant(5, dtype=tf.float32), name="x") y = tf.square(x) train_op…
第三章:TensorFlow入门 TensorFlow存在计算模型,数据模型和运算模型(本文用TF代表TensorFlow) 3.1 计算模型-计算图 3.1.1 计算图的概念 TensorFlow这个词Tensor表示张量,可以简单的理解为多维数组,Flow直观的表达了张量之间通过计算相互转化的过程. 如上图,TensorFlow中每个节点都是一个计算,而边代表了计算之间的依赖关系.a,b这两个常量不依赖任何其他计算,而add则依赖于两个常量的取值.所有TensorFlow的程序都可以用类似的…
5.1 MNIST数据处理 MNIST是NIST数据集的一个子集,包含60000张图片作为训练数据,10000张作为测试数据,其中每张图片代表0~9中的一个数字,图片大小为28*28(可以用一个28*28矩阵表示) 为了清楚表示,用下图14*14矩阵表示了,其实应该是28*28矩阵 TF提供了一个类来处理MNIST数据: 准备工作:桌面新建MNIST数字识别->cd MNIST数字识别->shift + 右键->在此处新建命令窗口->jupyter notebook->新建g…
引言:AlphaGo在2017年年初化身Master,在弈城和野狐等平台上横扫中日韩围棋高手,取得60连胜,未尝败绩.AlphaGo背后神秘的推动力就是TensorFlow--Google于2015年11月开源的机器学习及深度学习框架.  TensorFlow在2015年年底一出现就受到了极大的关注,在一个月内获得了GitHub上超过一万颗星的关注,目前在所有的机器学习.深度学习项目中排名第一,甚至在所有的Python项目中也排名第一.本文将带我们简单了解下TensorFlow,并与其他主流深度…