【tensorflow:Google】三、tensorflow入门

【一】计算图模型

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

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]})

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

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

时间: 2024-12-28 17:41:10

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

TensorFlow和深度学习入门教程(TensorFlow and deep learning without a PhD)

前言 上月导师在组会上交我们用tensorflow写深度学习和卷积神经网络,并把其PPT的参考学习资料给了我们, 这是codelabs上的教程:<TensorFlow and deep learning,without a PhD> 当然登入需要翻墙,我也顺带巩固下,做个翻译,不好之处请包含指正. 当然需要安装python,教程推荐使用python3.如果是Mac,可以参考博主的另外两片博文,Mac下升级python2.7到python3.6, Mac安装tensorflow1.0 好多专业词

TensorFlow官方文档入门笔记[一]

TensorFlow官方文档入门笔记[一] 张量 3 # a rank 0 tensor; this is a scalar with shape [] [1., 2., 3.] # a rank 1 tensor; this is a vector with shape [3] [[1., 2., 3.], [4., 5., 6.]] # a rank 2 tensor; a matrix with shape [2, 3] [[[1., 2., 3.]], [[7., 8., 9.]]] #

Google Protocol Buffers 入门

1. 前言 这篇入门教程是基于Java语言的,这篇文章我们将会: 创建一个.proto文件,在其内定义一些PB message 使用PB编译器 使用PB Java API 读写数据 这篇文章仅是入门手册,如果想深入学习及了解,可以参看: Protocol Buffer Language Guide, Java API Reference, Java Generated Code Guide, 以及Encoding Reference. 2. 为什么使用Protocol Buffers 接下来用“

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

承接移动端目标识别(2) 使用TensorFlow Lite在移动设备上运行         在本节中,我们将向您展示如何使用TensorFlow Lite获得更小的模型,并允许您利用针对移动设备优化的操作. TensorFlow Lite是TensorFlow针对移动和嵌入式设备的轻量级解决方案.它支持端上的机器学习推理,具有低延迟和小二进制模型大小. TensorFlow Lite使用了许多技术,例如允许更小和更快(定点数学)模型的量化内核. 对于本节,您需要从源代码构建TensorFlow

分布式系统漫谈一 —— Google三驾马车: GFS,mapreduce,Bigtable

分布式系统学习必读文章!!!! 原文:http://blog.sina.com.cn/s/blog_4ed630e801000bi3.html 分布式系统漫谈一 —— Google三驾马车: GFS,mapreduce,Bigtable 谈到分布式系统,就不得不提Google的三驾马车:Google fs[1],Mapreduce[2],Bigtable[3]. 虽然Google没有公布这三个产品的源码,但是他发布了这三个产品的详细设计论文.而且,Yahoo资助的Hadoop也有按照这三篇论文的

【TensorFlow实战】TensorFlow实现经典卷积神经网络之Google Inception Net

Google Inception Net 0.前言 Google Inception Net首次出现在ILSVRC 2014比赛中,就以较大优势获得第一名.那届的Inception Net被称为Inception Net V1,它最大的特点就是控制了计算量和参数量的同时,获得了非常好的分类性能--top-5错误率6.67%,只有AlexNet的一半不到.Inception Net V1有22层深,比AlexNet的8层或者VGGNet的19层还要更深.但其计算量只有15亿次浮点运算,同时只有50

TensorFlow 2 / 2.0 入门教程实战案例

中文文档 TensorFlow 2 / 2.0 中文文档 知乎专栏 欢迎关注知乎专栏 https://zhuanlan.zhihu.com/geektutu 一.实战教程之强化学习 TensorFlow 2.0 (九) - 强化学习 70行代码实战 Policy Gradient TensorFlow 2.0 (八) - 强化学习 DQN 玩转 gym Mountain Car TensorFlow 2.0 (七) - 强化学习 Q-Learning 玩转 OpenAI gym TensorFl

TensorFlow 的MNIST程序入门

http://www.tensorfly.cn/tfdoc/tutorials/mnist_pros.html ------------------------------------------------------------------------------- # -*- coding: utf-8 -*-"""Created on Fri Mar  9 10:16:39 2018 @author: DBSF"""import inpu

tensorFlow(三)逻辑回归

tensorFlow 基础见前博客 逻辑回归广泛应用在各类分类,回归任务中.本实验介绍逻辑回归在 TensorFlow 上的实现 理论知识回顾 逻辑回归的主要公式罗列如下: 激活函数(activation function): 损失函数(cost function): 其中 损失函数求偏导(derivative cost function): 训练模型 数据准备 首先我们需要先下载MNIST的数据集.使用以下的命令进行下载: wget https://devlab-1251520893.cos.