交互式使用

在上一篇Tensorflow文档学习理解里面,我们使用了一个会话Session来启动图,并调用Session.run()方法来执行操作。为了便于使用Ipython之类的交互环境,我们可以使用InteractiveSession代替Session类,使用Tensor.eval()Operation.run()方法代替Session.run()。这样可以避免使用一个会话来持有会话。

import tensorflow as tf
sess = tf.InteractiveSession()
# 定义一个变量
x = tf.Variable([1, 2])
a = tf.constant([3, 3])
# 使用初始化器 initializer op 的 run() 方法初始化 'x'
x.initializer.run()
# 执行减法
sub = tf.subtract(x, a)
print(sub.eval())

Tensor

TensorFlow 程序使用 tensor 数据结构来代表所有的数据, 计算图中, 操作间传递的数据都是 tensor. 你可以 把 TensorFlow tensor 看作是一个 n 维的数组或列表. 一个 tensor 包含一个静态类型 rank, 和 一个 shape.

变量

变量维护图执行过程中的状态信息,下面举例说明如何实现一个简单的计数器:

import tensorflow as tf
# 定义一个变量,初始值为0
state = tf.Variable(0, name='counter')
# 定义一个常量,值为1
one = tf.constant(1)
# 将这个变量和这个常量相加
new_val = tf.add(state, one)
# 赋值操作
update = tf.assign(state,new_val)
# 启动图后, 变量必须先经过`初始化` (init) op 初始化,
init_op = tf.global_variables_initializer()
# 上面的那部分是构件图,下面这部分开始执行图
with tf.Session() as sess:sess.run(init_op)print(sess.run(state))for _ in range(3):sess.run(update)print(sess.run(state))

输出结果如下所示:

在实际操作中,我们通常将一个神经网络的权重作为某个变量存储在一个 tensor 中. 在训练过程中, 通过重复运行训练图, 更新这个 tensor.

Fetch

为了取回操作的输出内容,可以使用Session对象的run()调用,执行图时,传入一些tensor,这些tensor会帮助你取回结果。在之前的例子里面,我们只取回了单个节点的state,但是你也可以取回多个Tensor。

import tensorflow as tf
input1 = tf.constant(3)
input2 = tf.constant(2)
input3 = tf.constant(5)
intermed = tf.add(input2, input3)
mul = tf.multiply(input1, intermed)
with tf.Session() as sess:result = sess.run([intermed, mul])print(result)

输出结果:

Feed

上述示例中的Tensor是以常量或则变量的形式存储,TensorFlow还提供了Feed机制,该机制可以临时替代图中操作的Tensor,feed使用一个tensor值,临时替换一个操作的输出结果,你可以使用feed数据作为run()调用的参数,feed只在调用它的方法内有效,feed结束,调用就会消失。通常用tf.placeholder,为这些操作创建占位符。

import tensorflow as tf
input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)
output = tf.multiply(input1, input2)
with tf.Session() as sess:print(sess.run(output, feed_dict={input1:[7], input2:[2]}))

输出结果:

我的微信公众号名称:深度学习与先进智能决策
微信公众号ID:MultiAgent1024
公众号介绍:主要研究强化学习、计算机视觉、深度学习、机器学习等相关内容,分享学习过程中的学习笔记和心得!期待您的关注,欢迎一起学习交流进步!

Tensorflow官方文档学习理解 (二)相关推荐

  1. javafx官方文档学习之二Scene体系学习一

    2019独角兽企业重金招聘Python工程师标准>>> 我的博文小站:http://www.xby1993.net,文章更新以博文小站为主,一般与oschina同步发布 原创文章,转 ...

  2. 每天一小时python官方文档学习(二)————流程控制工具

    4. 其他流程控制工具 4.1. if 语句 大多数人都很熟悉的if语句: if condition1:pass elif condition2:pass else condition3:pass 注 ...

  3. tensorflow学习笔记十7:tensorflow官方文档学习 How to Retrain Inception's Final Layer for New Categories

    现代物体识别模型有数以百万计的参数,可能需要数周才能完全训练.学习迁移是一个捷径,很多这样的工作,以充分的训练模式的一组类ImageNet技术,并从现有的权重进行新课.在这个例子中,我们将从头再训练最 ...

  4. TensorFlow官方文档中的sub 和mul中的函数已经在API中改名了

    照着tensorflow 官方文档学习tensorflow时,出现问题: 第一,执行程序 #进入一个交互式Tensorflow会话 import tensorflow as tf sess = tf. ...

  5. Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion(二)

    接前一篇 Spring Framework 官方文档学习(四)之Validation.Data Binding.Type Conversion(一) 本篇主要内容:Spring Type Conver ...

  6. TensorFlow 官方文档中文版发布啦(持续维护)

    TensorFlow 是 Google 研发的第二代人工智能学习系统,是 Google 为了帮助全球开发者们更加方便和高效地开发机器学习 (Machine Learning)和人工智能 (AI) 应用 ...

  7. TensorFlow 官方文档中文版发布啦(持续维护) 1

    TensorFlow 是 Google 研发的第二代人工智能学习系统,是 Google 为了帮助全球开发者们更加方便和高效地开发机器学习 (Machine Learning)和人工智能 (AI) 应用 ...

  8. Spring Boot 官方文档学习(一)入门及使用

    Spring Boot 官方文档学习(一)入门及使用 个人说明:本文内容都是从为知笔记上复制过来的,样式难免走样,以后再修改吧.另外,本文可以看作官方文档的选择性的翻译(大部分),以及个人使用经验及问 ...

  9. HarmonyOS(一) 快速开始学习鸿蒙开发,官方文档学习路线解析

    系列文章目录 HarmonyOS(一):快速开始学习鸿蒙开发,官方文档学习路线解析 HarmonyOS(二):应用开发环境搭建准备 HarmonyOS(三):创建你的第一个HelloWorld应用 文 ...

  10. tensorflow官方文档_开源分享:最好的TensorFlow入门教程

    如果一门技术的学习曲线过于陡峭,那么我们在入门时的场景往往是,一鼓作气,没入门,再而衰,三而竭.演绎一出从入门到放弃的败走麦城. 今天发现一个入门TensorFlow的宝藏,迫不及待的分享给大家.这个 ...

最新文章

  1. 15.文件系统——软RAID的实现(二)(mdadm,watch, RAID1)
  2. JGroups 入门实践(转)
  3. 转载:实用 FRIDA 进阶 --- objection :内存漫游、hook anywhere、抓包
  4. 在flash cs3场景中插入按钮以后,无法测试场景,删除按钮以后又可以测试?可能是按钮中某个帧上的文本对象的字体错了
  5. ACM题目————中位数
  6. sql优化常用的几种方法:19种最有效的sql优化技巧
  7. 日本公司为东京大学开设区块链课程捐款80万美元
  8. 基于双边滤波的图像增强算法
  9. linux对IO口控制remap,ioremap/remap_page_range [经典]Linux内核中ioremap映射的透彻理解...
  10. Windows10家庭版转为专业版
  11. 使用NetMHCpan进行肿瘤新抗原预测分析
  12. 《计算机工程》投稿经验
  13. C语言:有一个一维数组score,内放10个学生成绩,求平均成绩。
  14. BlazeDS简单介绍
  15. 使用Lucene开发简单的站内新闻搜索引擎(环境的搭建)
  16. 限制Teams会议中的聊天
  17. 程序猿终级课颈椎腰椎锻炼
  18. 商品推荐系统毕业设计 协同过滤算法
  19. JavaScript代码题--以及一些奇奇怪怪的发现
  20. 关于用Java程序实现8421码权限管理 -第三部分

热门文章

  1. USACO_1_2_Dual Palindromes
  2. HCIE-RS--路由器交换机做整形的区别
  3. 游戏筑基开发之字符串、字符指针、字符数组的相关知识梳理(C语言)
  4. 游戏筑基开发之初识指针
  5. 双点双向重分发中的次优路径和环路问题
  6. HCIE Security PKI 备考笔记(幕布)
  7. iStack与CSS配置实例
  8. 使用Epoch-Based Reclamation(EBR,特定域回收的一种方法)修改 lazy-list
  9. Vue 无限滚动加载指令
  10. Python之路--Django--auth认证系统