TensorFlow代码初识
直接看代码
import tensorflow as tf # tf.Variable生成的变量,每次迭代都会变化, # 这个变量也就是我们要去计算的结果,所以说你要计算什么,你是不是就把什么定义为Variable ''' TensorFlow程序可以通过tf.device函数来指定运行每一个操作的设备。 这个设备可以是本地的CPU或者GPU,也可以是某一台远程的服务器。 TensorFlow会给每一个可用的设备一个名称,tf.device函数可以通过设备的名称,来指定执行运算的设备。比如CPU在TensorFlow中的名称为/cpu:0。 在默认情况下,即使机器有多个CPU,TensorFlow也不会区分它们,所有的CPU都使用/cpu:0作为名称。 –而一台机器上不同GPU的名称是不同的,第n个GPU在TensorFlow中的名称为/gpu:n。 –比如第一个GPU的名称为/gpu:0,第二个GPU名称为/gpu:1,以此类推。 –TensorFlow提供了一个快捷的方式,来查看运行每一个运算的设备。 –在生成会话时,可以通过设置log_device_placement参数来打印运行每一个运算的设备。 –除了可以看到最后的计算结果之外,还可以看到类似“add: /job:localhost/replica:0/task:0/cpu:0”这样的输出 –这些输出显示了执行每一个运算的设备。比如加法操作add是通过CPU来运行的,因为它的设备名称中包含了/cpu:0。 –在配置好GPU环境的TensorFlow中,如果操作没有明确地指定运行设备,那么TensorFlow会优先选择GPU ''' with tf.device('/cpu:0'): x = tf.Variable(3, name='x') y = tf.Variable(4, name='y') f = x*x*y + y + 2 # 创建一个计算图的一个上下文环境 # 配置里面是把具体运行过程在哪里执行给打印出来 sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) # 碰到session.run()就会立刻去调用计算 sess.run(x.initializer) sess.run(y.initializer) result = sess.run(f) print(result) sess.close()
通常session操作
import tensorflow as tf x = tf.Variable(3, name='x') y = tf.Variable(4, name='y') f = x*x*y + y + 2 # 在with块内部,session被设置为默认的session with tf.Session() as sess: x.initializer.run() # 等价于 tf.get_default_session().run(x.initializer) y.initializer.run() result = f.eval() # 等价于 tf.get_default_session().run(f) print(result)
全局变量初始化
import tensorflow as tf x = tf.Variable(3, name='x') y = tf.Variable(4, name='y') f = x*x*y + y + 2 # 可以不分别对每个变量去进行初始化 # 并不立即初始化,在run运行的时候才初始化 init = tf.global_variables_initializer() with tf.Session() as sess: init.run() result = f.eval() print(result)
import tensorflow as tf x = tf.Variable(3, name='x') y = tf.Variable(4, name='y') f = x*x*y + y + 2 init = tf.global_variables_initializer() # InteractiveSession和常规的Session不同在于,自动默认设置它自己为默认的session # 即无需放在with块中了,但是这样需要自己来close session,但在Jupyter可方便使用 sess = tf.InteractiveSession() init.run() result = f.eval() print(result) sess.close() # TensorFlow程序会典型的分为两部分,第一部分是创建计算图,叫做构建阶段, # 这一阶段通常建立表示机器学习模型的的计算图,和需要去训练模型的计算图, # 第二部分是执行阶段,执行阶段通常运行Loop循环重复训练步骤,每一步训练小批量数据, # 逐渐的改进模型参数
图的管理
import tensorflow as tf # 任何创建的节点会自动加入到默认的图 x1 = tf.Variable(1) print(x1.graph is tf.get_default_graph()) # 大多数情况下上面运行的很好,有时候或许想要管理多个独立的图 # 可以创建一个新的图并且临时使用with块是的它成为默认的图 graph = tf.Graph() x3 = tf.Variable(3) with graph.as_default(): x2 = tf.Variable(2) print(x2.graph is graph) print(x2.graph is tf.get_default_graph()) print(x3.graph is tf.get_default_graph())
图的生命周期
import tensorflow as tf # 当去计算一个节点的时候,TensorFlow自动计算它依赖的一组节点,并且首先计算依赖的节点 w = tf.constant(3) x = w + 2 y = x + 5 z = x * 3 with tf.Session() as sess: print(y.eval()) # 这里为了去计算z,又重新计算了x和w,除了Variable值,tf是不会缓存其他比如contant等的值的 # 一个Variable的生命周期是当它的initializer运行的时候开始,到会话session close的时候结束 print(z.eval()) # 如果我们想要有效的计算y和z,并且又不重复计算w和x两次,我们必须要求TensorFlow计算y和z在一个图里 with tf.Session() as sess: y_val, z_val = sess.run([y, z]) print(y_val) print(z_val)
TensorFlow代码初识的更多相关文章
- tensorflow 代码阅读
具体实现: https://github.com/tensorflow/tensorflow/tree/master/tensorflow/core/framework 『深度长文』Tensorflo ...
- 关于使用实验室服务器的GPU以及跑上TensorFlow代码
连接服务器 Windows - XShell XFtp SSH 通过SSH来连接实验室的服务器 使用SSH连接已经不陌生了 github和OS课设都经常使用 目前使用 192.168.7.169 使用 ...
- 条件随机场(crf)及tensorflow代码实例
对于条件随机场的学习,我觉得应该结合HMM模型一起进行对比学习.首先浏览HMM模型:https://www.cnblogs.com/pinking/p/8531405.html 一.定义 条件随机场( ...
- 如何高效的学习 TensorFlow 代码? 以及TensorFlow相关的论文
https://www.zhihu.com/question/41667903 源码分析 http://www.cnblogs.com/yao62995/p/5773578.html 如何贡献Tens ...
- TensorFlow --- 01初识
由于博客园对Markdown支持不够友好,阅读此文请前往云栖社区:TensorFlow --- 01初识
- Transformer解析与tensorflow代码解读
本文是针对谷歌Transformer模型的解读,根据我自己的理解顺序记录的. 另外,针对Kyubyong实现的tensorflow代码进行解读,代码地址https://github.com/Kyuby ...
- 深度学习之卷积神经网络CNN及tensorflow代码实例
深度学习之卷积神经网络CNN及tensorflow代码实例 什么是卷积? 卷积的定义 从数学上讲,卷积就是一种运算,是我们学习高等数学之后,新接触的一种运算,因为涉及到积分.级数,所以看起来觉得很复杂 ...
- 深度学习之卷积神经网络CNN及tensorflow代码实现示例
深度学习之卷积神经网络CNN及tensorflow代码实现示例 2017年05月01日 13:28:21 cxmscb 阅读数 151413更多 分类专栏: 机器学习 深度学习 机器学习 版权声明 ...
- 运行TensorFlow代码时报错
运行TensorFlow代码时报错 错误信息ImportError: libcublas.so.10.0: cannot open shared object file 原因:TensorFlow版本 ...
随机推荐
- Linux系统安装与初用
1.结合实验尝试,并查阅资料,总结在实验准备中提出的7个问题. (1).Linux的发行版本.内核版本:二者区别与联系. 核心版本主要是Linux的内核,发行版本是各个公司推出的版本,他们与核心版本是 ...
- 2019 Power BI最Top50面试题,助你面试脱颖而出系列<上>
距离4月还剩11天, 你是否还在投简历找工作而机会寥寥? 你是否还在四处奔波疲于面试而结果不意? ....... 知否知否, 天下武功唯快不破, 传说江湖有本Power BI 面试真香秘籍, 能助你快 ...
- jQuery-3.事件篇---自定义事件
jQuery自定义事件之trigger事件 众所周知类似于mousedown.click.keydown等等这类型的事件都是浏览器提供的,通俗叫原生事件,这类型的事件是需要有交互行为才能被触发. 在j ...
- C#经典面试题及答案
1.请你说说.net 中类和结构的区别? 答:结构和类具有大体的语法,但是结构受到的限制比类多.结构不能声明默认的的构造函数,为结构的副本是编译器创建和销毁的,所以不需要默认的构造函数和析构函数,结构 ...
- java语言基础--接口
接口定义: 是一个特殊的抽象类,在接口里面的所有方法都是抽象的. 接口用interface来声明. 注意: 接口中只能出现常量和抽象方法: 接口里面没有构造方法,无法创建接口的对象: 接口和接口之间支 ...
- python 读fnl数据
(1) FNL 数据介绍 FNL((Final Operational Global Analysis)数据是美国国家环境预报中心(NECP)/美国国家大气研究中心(NCAR)提供的全球再分析资料,空 ...
- WEB测试专题之测试分类
虽然说是一个功能测试就概括了,但是其实这里面还别有洞天,大概区分为下面几个小类别:WEB测试专题之web测试分类一(1)链接测试链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不 ...
- 构建之法 chapter 8 需求分析 ——读书心得
需求分析,是软件工程开发的第一步,准确全面地找到用户的需求,尽可能满足用户的要求,是软件惺惺发展的基础.所以需求分析很重要.具体来说有以下几个步骤: 1.获取和引导需求:软件团队需要找到软件的利益相关 ...
- tornado--输入和输出
tornado--输入和输出 tornado的self.write只接受byte,Unicode,dict三种格式的对象. self.write会存在一个缓冲区,当不强制断开缓冲的时候,它会把当前函数 ...
- 2018-2019-2 20165313 《网络对抗技术》 Exp6 信息搜集与漏洞扫描
一.实践目标 掌握信息搜集的最基础技能与常用工具的使用方法. 二.实践内容. (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技术:主机发现.端口扫描.OS及服务版本探测. ...