【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]})
接下来定义损失函数、反向传播算法
实现一个简单的神经网络解决手写数字识别问题!
【tensorflow:Google】三、tensorflow入门的更多相关文章
- 深入浅出TensorFlow(二):TensorFlow解决MNIST问题入门
2017年2月16日,Google正式对外发布Google TensorFlow 1.0版本,并保证本次的发布版本API接口完全满足生产环境稳定性要求.这是TensorFlow的一个重要里程碑,标志着 ...
- TensorFlow和深度学习入门教程(TensorFlow and deep learning without a PhD)【转】
本文转载自:https://blog.csdn.net/xummgg/article/details/69214366 前言 上月导师在组会上交我们用tensorflow写深度学习和卷积神经网络,并把 ...
- TensorFlow 2.0 快速入门指南 | iBooker·ApacheCN
原文:TensorFlow 2.0 Quick Start Guide 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 不要担心自己的形象,只关心如何实现目标.--<原则>,生活 ...
- TensorFlow笔记三:从Minist数据集出发 两种经典训练方法
Minist数据集:MNIST_data 包含四个数据文件 一.方法一:经典方法 tf.matmul(X,w)+b import tensorflow as tf import numpy as np ...
- Google的TensorFlow,微软CNTK, Amazon 的MxNet,Facebook 的Caffe2, PyTorch,国内百度的PaddlePaddle
深度学习框架竞争很激烈,而且看上去都是业界巨头在玩. 老师木:是的.一个深度学习框架一旦像Hadoop那样成为事实工业标准,就占据了人工智能各种关键应用的入口,对各类垂直应用,基于私有部署的技术服务, ...
- [Tensorflow] Practice - The Tensorflow Way
该系列主要是<Tensorflow 实战Google深度学习框架 >阅读笔记:有了Cookbook的热身后,以这本书作为基础形成个人知识体系. Ref: [Tensorflow] Cook ...
- 【转载】google搜索从入门到精通
原文地址:http://www.cnblogs.com/helloIT/articles/5095668.html /***************************************** ...
- 移动端目标识别(3)——使用TensorFlow Lite将tensorflow模型部署到移动端(ssd)之Running on mobile with TensorFlow Lite (写的很乱,回头更新一个简洁的版本)
承接移动端目标识别(2) 使用TensorFlow Lite在移动设备上运行 在本节中,我们将向您展示如何使用TensorFlow Lite获得更小的模型,并允许您利用针对移动设备优化 ...
- 移动端目标识别(1)——使用TensorFlow Lite将tensorflow模型部署到移动端(ssd)之TensorFlow Lite简介
平时工作就是做深度学习,但是深度学习没有落地就是比较虚,目前在移动端或嵌入式端应用的比较实际,也了解到目前主要有 caffe2,腾讯ncnn,tensorflow,因为工作用tensorflow比较多 ...
- 移动端目标识别(2)——使用TENSORFLOW LITE将TENSORFLOW模型部署到移动端(SSD)之TF Lite Developer Guide
TF Lite开发人员指南 目录: 1 选择一个模型 使用一个预训练模型 使用自己的数据集重新训练inception-V3,MovileNet 训练自己的模型 2 转换模型格式 转换tf.GraphD ...
随机推荐
- Java基础—数组(转载)
Java 语言中提供的数组是用来存储固定大小的同类型元素.其实数组就是一个容器. 创建数组 Java 中声明数组的语法有两种: dataType[] arrayRefVar; // 首选的方法 dat ...
- webpack基础使用
环境: win10, webpack v3.5.6, node v8.4, npm v5.3. 安装与配置 新建一个项目目录demo, 在当前目录执行如下命令: npm init -y npm ins ...
- unittest 单元测试框架断言方法
unittest单元测试框架的TestCase类下,测试结果断言方法:Assertion methods 方法 检查 版本 assertEqual(a, b) a == b assertNotEqu ...
- 移动app自动化测试
原文出处https://www.toutiao.com/i6473606106970063374/ 原文作者是今日头条的:一个字头的诞生 在此感谢原文作者的无私分享! 移动App自动化测试(一) 目前 ...
- git 上传本地代码到远程仓库
未经允许,禁止转载! 查看哪些文件被修改过:git status 查看具体的修改内容:git diff 对新添加的文件进行添加:git add 文件名 提交修改标记:git commit -m &qu ...
- HDU - 6435 Problem J. CSGO 2018 Multi-University Training Contest 10 (二进制枚举+思维)
题意:有N个主武器(MW)和M个副武器(SW),每个武器都有自己的S值,和K个附加属性xi.要选取一对主副武器搭配,搭配后获得的性能由该公式得出: 求获得最大的性能为多少. 分析:由于|xm - xs ...
- Loadrunder场景设计篇——定时器(schedule)
A. 定义方案schedule 在 Scenario Schedule面板中,选择一个方案schedule,或通过点击New Schedule定义一个新的方案 定义schedule: a.新建sc ...
- 特别好用的swagger ui 封装
Swagger简单介绍 Swagger是一个Restful风格接口的文档在线自动生成和测试的框架 官网:http://swagger.io 官方描述:The World’s Most Popular ...
- Nginx 配置文件重写
nginx主配置文件 1.清空过Nginx配置文件,修改: vim /usr/local/nginx/conf/nginx.conf # 以那个账户,账户组来运行nginx user nobody n ...
- windows 安装python3.5启动报错:api-ms-win-crt-runtime-l1-1-0.dll丢失
下载: api-ms-win-crt-runtime就是MFC的运行时环境的库,python在windows上编译也是用微软的visual studio C++编译的,底层也会用到微软提供的C++库和 ...