TensorFlow计算图,张量,会话基础知识
import tensorflow as tf
get_default_graph = "tensorflow_get_default_graph.png"
# 当前默认的计算图 tf.get_default_graph
print(tf.get_default_graph()) # 自定义计算图
# tf.Graph # g1中定义名字为v的变量 初始化为0
g1 = tf.Graph()
with g1.as_default():
v = tf.get_variable("v", shape=[1],
initializer=tf.zeros_initializer()) # g2中定义名字为v的变量 初始化为1
g2 = tf.Graph()
with g2.as_default():
v = tf.get_variable("v", shape=[1],
initializer=tf.ones_initializer()) # initialize_all_variables Use `tf.global_variables_initializer` instead.
# 在计算图g1中读取变量v的取值 result is[ 0.]
with tf.Session(graph=g1) as sess:
# tf.initialize_all_variables().run()
tf.global_variables_initializer().run()
with tf.variable_scope("", reuse=True):
print(sess.run(tf.get_variable("v"))) # 在计算图g2中读取变量v的取值 result is [1.]
with tf.Session(graph=g2) as sess:
# tf.initialize_all_variables().run()
tf.global_variables_initializer().run()
with tf.variable_scope("", reuse=True):
print(sess.run(tf.get_variable("v"))) '''
#计算图可以隔离张量和计算也可以指定计算设备
g=tf.Graph()
#指定GPU
with g.device("/gpu:0"):
result=a+b '''
import tensorflow as tf #tensor 张量 零阶张量是标量scalar 一阶张量是向量vector n阶张量理解为n维数组
#张量在TensorFlow中不是直接采用数组的形式,只是运算结果的引用。并没有保存数组,保存的是如何得到这些数字的计算过程 #tf.constan是一个计算,结果为一个张量,保存在变量a中
a=tf.constant([1.0,2.0],name="a")
b=tf.constant([2.0,3.0],name="b") result=a+b
print(result)
#Tensor("add:0", shape=(2,), dtype=float32) result=tf.add(a,b,name="add")
print(result)
#Tensor("add_1:0", shape=(2,), dtype=float32)
#张量保存三个属性 名字name(唯一标识) 维度shape 类型 dtype
#张量的命名是node:src_output形式给出,node是节点名称,src_output是表示张量来自节点第几个输出
#add_1:0 说明是add节点的第一个输出(编号从0开始)
#shape=(2,) 以为数组,长度为2 #dtype=float32 每个张量类型唯一,不匹配将报错
'''
a=tf.constant([1,2],name="a")
b=tf.constant([2.0,3.0],name="b")
result=a+b
print(result)
#ValueError: Tensor conversion requested dtype int32 for Tensor with dtype float32: 'Tensor("b_1:0", shape=(2,), dtype=float32)'
''' #result.get_shape 获取张量的维度
print(result.get_shape)
# result
# <bound method Tensor.get_shape of <tf.Tensor 'add_1:0' shape=(2,) dtype=float32>> #当计算图构造完成后,张量可以获得计算结果 (张量本身没有存储具体的数字) #使用session来执行定义好的运算 (也就是张量存储了运算的过程,使用session执行运算获取结果)
#创建会话
sess=tf.Session()
res=sess.run(result)
print(res)
#result is [ 3. 5.]
#关闭会话是本地运行使用到的资源释放
sess.close() #也可以使用python上下文管理器机制,吧所有的计算放在with中,上下文管理器推出是自动释放所有资源,可以避免忘记sess.close()去释放资源 with tf.Session() as sess:
print(sess.run(result))
#[ 3. 5.] #as_default 通过默认的会话计算张量的取值 会话不会自动生成默认的会话,需要手动指定 指定后可以通过eval来计算张量的取值
sess =tf.Session()
with sess.as_default():
print(result.eval())
#[ 3. 5.] #ConfigProto来配置需要生成的会话
#allow_soft_placement GPU设备相关
#log_device_palcement 日志相关
config=tf.ConfigProto(allow_soft_placement=True,
log_device_placement=True)
sess1=tf.InteractiveSession(config=config)
sess2=tf.Session(config=config)
#Device mapping: no known devices. tensorflow\core\common_runtime\direct_session.cc
#Device mapping: no known devices. #PY\35\tensorflow\core\platform\cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
TensorFlow计算图,张量,会话基础知识的更多相关文章
- TensorFlow应用实战 | TensorFlow基础知识
挺长的~超出估计值了~预计阅读时间20分钟. 从helloworld开始 mkdir 1.helloworld cd 1.helloworldvim helloworld.py 代码: # -*- c ...
- tensorflow笔记(一)之基础知识
tensorflow笔记(一)之基础知识 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7399701.html 前言 这篇no ...
- Ternsorflow 学习:002-Tensorflow 基础知识
前言: 使用 TensorFlow 之前你需要了解关于 TensorFlow 的以下基础知识: 使用图(graphs) 来表示计算 在会话(session) 中执行图 使用张量(tensors) 来代 ...
- TFLite基础知识
此基础知识仅为个人学习记录,如有错误或遗漏之处,还请各位同行给个提示. 概述 TFLite主要含有如下内容: (1)TFLite提供一系列针对移动平台的核心算子,包括量化和浮点运算.另外,TFLite ...
- [源码解析] 深度学习分布式训练框架 Horovod (1) --- 基础知识
[源码解析] 深度学习分布式训练框架 Horovod --- (1) 基础知识 目录 [源码解析] 深度学习分布式训练框架 Horovod --- (1) 基础知识 0x00 摘要 0x01 分布式并 ...
- [源码解析] PyTorch 流水线并行实现 (1)--基础知识
[源码解析] PyTorch 流水线并行实现 (1)--基础知识 目录 [源码解析] PyTorch 流水线并行实现 (1)--基础知识 0x00 摘要 0x01 历史 1.1 GPipe 1.2 t ...
- [源码解析] TensorFlow 分布式 DistributedStrategy 之基础篇
[源码解析] TensorFlow 分布式 DistributedStrategy 之基础篇 目录 [源码解析] TensorFlow 分布式 DistributedStrategy 之基础篇 1. ...
- Oracle数据库基础知识
oracle数据库plsql developer 目录(?)[-] 一 SQL基础知识 创建删除数据库 创建删除修改表 添加修改删除列 oracle cascade用法 添加删除约束主键外 ...
- Spring基础知识
Spring基础知识 利用spring完成松耦合 接口 public interface IOutputGenerator { public void generateOutput(); } 实现类 ...
随机推荐
- BZOJ 2333 【SCOI2011】 棘手的操作
题目链接:棘手的操作 网上的题解大部分都是在线用可并堆艹……但是树高严格\(\log\)的可并堆我不会啊……还是离线大法好…… 我们可以先把所有的合并操作用并查集给处理好,把得到的森林记录下来.然后, ...
- MVC结构之Service概念
所有的逻辑都放到M层,M层会臃肿. 所有的逻辑都放到C层,C层会臃肿. 这个时候需要一个中间层,Service层. Service可以倾向于Model层,比如处理订单查询相关的逻辑. Service可 ...
- nodejs项目的model操作mongo
想想以前学习hibernate的时候,学习各种表和表之间的映射关系等一对多,多对一,多对多,后来到了工作中,勇哥告诉我, 那时在学习的时候,公司中都直接用外键关联. 这里我们学习下,如何在Nodejs ...
- jq对象和DOM对象的互换
var oJq; //JQ对象 var oDom; //dom对象 oDom = oJq[index]; // JQ对象转化为oDom对象 oJq = $(oDom); //DOM对象 ...
- do-while语句和while的区别
do-while语句是一种后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件.其实就是,代码在刚开始执行的时候,都是要先走一遍do循环体内的代码,然后在与while里面的条件进行判断,成 ...
- SPDY以及示例
SPDY是Google开发的基于传输控制协议(TCP)的应用层协议 .Google最早是在Chromium中提出的SPDY协议[1].目前已经被用于Google Chrome浏览器中来访问Google ...
- 流程设计器jQuery + svg/vml(Demo3 - 添加流程结点)
经过前面的准备工作,终于把设计器的主要UI界面搭建好了,接下来到添加流程结点,效果如下图 代码:GoFlow_03.zip 演示地址:Demo 微信演示公众号: 另:Silverlight版 Silv ...
- Xadmin的配置及使用
xadmin是Django的第三方扩展,可是使Django的admin站点使用更方便. 1. 安装 通过如下命令安装xadmin的最新版 pip install https://github.com/ ...
- Beta阶段第1周/共2周 Scrum立会报告+燃尽图 03
作业要求与 [https://edu.cnblogs.com/campus/nenu/2018fall/homework/2284] 相同 版本控制:https://git.coding.net/li ...
- 再谈Spring AOP
1.AOP的基本概念 在进行AOP开发前,先熟悉几个概念: 连接点(Jointpoint):表示需要在程序中插入横切关注点的扩展点,连接点可能是类初始化.方法执行.方法调用.字段调用或处理异常等等,S ...