【一】计算图模型

节点是计算,边是数据流,

a = tf.constant( [1., 2.] )定义的是节点,节点有属性 a.graph

取得默认计算图  g1 = tf.get_default_graph()

初始化计算图   g1 = tf.Graph()

设置default图   g1.as_default()

定义变量:    tf.get_variable('v')

读取变量也是上述函数

对图指定设备  g.device('/gpu:0')

可以定义集合来管理计算图中的资源,

加入集合  tf.add_to_collection

获取集合  tf.get_collection

自动管理一些集合

【二】数据模型——张量

所有的数据都用张量表示,n阶张量是n维数据,0维为标量(scalar)

张量中不保存数字,而是计算过程!得到的是对结果的一个引用。(如果还没run,那么一定是没结果的)

主要有三个属性:

1、名字

2、维度

3、数据类型

命名:节点的名称 + 是节点的第几个输出。节点本身没有这个数据类型,只有张量这个数据类型。

张量的使用

1、记录中间计算结果,提高代码可读性

2、计算图构造完成之后,获得计算结果(需要通过Session) tf.Session().run(result)

【三】运行模型——会话 Session

sess = tf.Session()

两种等价的表达:

  sess.run(result)

  result.eval(session = sess)

sess.close()

默认会话机制:

sess = tf.InteractiveSession()

之后.eval()不需要指定session参数

在生成session的过程中也可以使用config来管理,

config = tf.ConfigProto(并行的线程数,GPU分配策略,运算超时时间,)

allow_soft_placement的意思是不支持GPU的时候使用CPU。

log_device_placement是记录每个节点被安排在哪个设备上,方便测试。

【四】利用tensorflow实现神经网络

前向传播算法简介:就是一步一步传过来。。。完全没说参数是怎么训练的。。。

tf.Variable生成变量

tf.random_xxx是随机数生成函数

tf.matmul()矩阵乘法

前向传播过程:

1、定义变量、常量、矩阵乘法

2、初始化变量:  sess.run(w1.initializer)

  另外的方案:使用 init_op = tf.initialize_all_variables()      sess.run(init_op)来实现。

3、运行:  sess.run(y)

变量是张量的一个特殊形式,一般有 .assign和.read方法,分别实现写/读功能

变量一般分两种:

1、可训练的:神经网络权重

2、不可训练:迭代轮数

优化算法的默认优化对象是tf.GraphKeys.TRAINABLE_VARIABLES里面的变量。

变量类型不可改变,但是变量维度可以改变

改变方式为 assign的时候加入参数 validate_shape=False

训练流程:

placeholder机制:定义一个位置,需要在程序运行的时候填充数据,

计算前向传播结果的伪代码:

init 权重variable

init x placeholder

init a = tf.matmul(x, w1)

sess = Session()

init_op = init_all

sess.run(init_op)

sess.run(y, feed_dict={x: [0.1, 0.2]})

接下来定义损失函数、反向传播算法

实现一个简单的神经网络解决手写数字识别问题!

【tensorflow:Google】三、tensorflow入门的更多相关文章

  1. 深入浅出TensorFlow(二):TensorFlow解决MNIST问题入门

    2017年2月16日,Google正式对外发布Google TensorFlow 1.0版本,并保证本次的发布版本API接口完全满足生产环境稳定性要求.这是TensorFlow的一个重要里程碑,标志着 ...

  2. TensorFlow和深度学习入门教程(TensorFlow and deep learning without a PhD)【转】

    本文转载自:https://blog.csdn.net/xummgg/article/details/69214366 前言 上月导师在组会上交我们用tensorflow写深度学习和卷积神经网络,并把 ...

  3. TensorFlow 2.0 快速入门指南 | iBooker·ApacheCN

    原文:TensorFlow 2.0 Quick Start Guide 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 不要担心自己的形象,只关心如何实现目标.--<原则>,生活 ...

  4. TensorFlow笔记三:从Minist数据集出发 两种经典训练方法

    Minist数据集:MNIST_data 包含四个数据文件 一.方法一:经典方法 tf.matmul(X,w)+b import tensorflow as tf import numpy as np ...

  5. Google的TensorFlow,微软CNTK, Amazon 的MxNet,Facebook 的Caffe2, PyTorch,国内百度的PaddlePaddle

    深度学习框架竞争很激烈,而且看上去都是业界巨头在玩. 老师木:是的.一个深度学习框架一旦像Hadoop那样成为事实工业标准,就占据了人工智能各种关键应用的入口,对各类垂直应用,基于私有部署的技术服务, ...

  6. [Tensorflow] Practice - The Tensorflow Way

    该系列主要是<Tensorflow 实战Google深度学习框架 >阅读笔记:有了Cookbook的热身后,以这本书作为基础形成个人知识体系. Ref: [Tensorflow] Cook ...

  7. 【转载】google搜索从入门到精通

    原文地址:http://www.cnblogs.com/helloIT/articles/5095668.html /***************************************** ...

  8. 移动端目标识别(3)——使用TensorFlow Lite将tensorflow模型部署到移动端(ssd)之Running on mobile with TensorFlow Lite (写的很乱,回头更新一个简洁的版本)

    承接移动端目标识别(2) 使用TensorFlow Lite在移动设备上运行         在本节中,我们将向您展示如何使用TensorFlow Lite获得更小的模型,并允许您利用针对移动设备优化 ...

  9. 移动端目标识别(1)——使用TensorFlow Lite将tensorflow模型部署到移动端(ssd)之TensorFlow Lite简介

    平时工作就是做深度学习,但是深度学习没有落地就是比较虚,目前在移动端或嵌入式端应用的比较实际,也了解到目前主要有 caffe2,腾讯ncnn,tensorflow,因为工作用tensorflow比较多 ...

  10. 移动端目标识别(2)——使用TENSORFLOW LITE将TENSORFLOW模型部署到移动端(SSD)之TF Lite Developer Guide

    TF Lite开发人员指南 目录: 1 选择一个模型 使用一个预训练模型 使用自己的数据集重新训练inception-V3,MovileNet 训练自己的模型 2 转换模型格式 转换tf.GraphD ...

随机推荐

  1. 第四课 Makefile文件的制作(下)

    1序言: 前面一节课讲解了Makefile的基础知识包括原理.预定义以及命令格式,这样是可以完成一个自动编译的文件,这些知识可以帮你完成.想想mak真是强大啊,可能有些同志发现了如果项目文件太多每个目 ...

  2. Django:学习笔记(3)——REST实现

    Django:学习笔记(3)——REST实现 了解REST风格 按照传统的开发方式,我们在实现CURD操作时,会写多个映射路径,比如对一本书的操作,我们会写多个URL,可能如下 web/deleteB ...

  3. canvas 事件绑定

    Canvas事件绑定   canvas事件绑定 众所周知canvas是位图,在位图里我们可以在里面画各种东西,可以是图片,可以是线条等等.那我们想给canvas里的某一张图片添加一个点击事件该怎么做到 ...

  4. Go语言学习之运算符(The way to go)

    生命不止,继续go go go 今天介绍go中的运算符. 运算符大概分为: Arithmetic Operators Relational Operators Logical Operators Bi ...

  5. Gradle命令详解与导入第三方包--快速打包

    快速打包app:gradlew assembleRelease --console plain (好使) 下边的方法暂时不好使,可以用的兄弟请教下哈! Android Studio + Gradle的 ...

  6. zabbix安装配置agent程序之agent配置文件详解

    安装zabbix-agent http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/ 下载:zabbix-agent-3.2.0-1.el6.x86_64.r ...

  7. Linux.Siggen.180

    from: https://vms.drweb.com/virus/?i=15455134&lng=en Linux.Siggen.180 Added to Dr.Web virus data ...

  8. JQuery -- Jquery 中的Ajax, Jquery解析xml文件

    1. JQuery 对 Ajax 操作进行了封装,在 jQuery 中最底层的方法时 $.ajax(), 第二层是 load(), $.get() 和 $.post(),第三层是$.getScript ...

  9. Android开发——View的生命周期总结

    0.前言 今天看到一个概念是View的生命周期,有点懵逼,听说过Activity的生命周期,Fragment的生命周期,对View的生命周期好像没什么概念啊.难道layout.draw这些也算是生命周 ...

  10. 使用 <!-- 指定使用hibernate核心配置文件 --> <property name="configLocations" value="classpath:hibernate.cfg.xml"></property>

    在bean.xml文件中,这样使用出现问题 <!-- 指定使用hibernate核心配置文件 --> <property name="configLocations&quo ...