TensorFlow基础知识1-计算图
来源:互联网 发布:西安java培训多少钱 编辑:程序博客网 时间:2024/05/22 03:50
什么是计算图?
计算图又被称为是有向图,数据流图。
TensorFlow是一个通过计算图的形式来表述计算的编程系统。TensorFlow中的每一个计算都是计算图上的一个节点,而节点之间的边描述了计算之间的依赖关系。
下图展示了通过TensorBoard画出来的两个向量相加的计算图。
(TensorBoard的使用参考我的博客:http://blog.csdn.net/hongxue8888/article/details/69389171)
什么是数据流图(Data Flow Graph)?
数据流图是描述有向图中的数值计算过程。有向图中的节点通常代表数学运算,但也可以表示数据的输入、输出和读写等操作;有向图中的边表示节点之间的某种联系,它负责传输多维数据(Tensors)。图中这些tensors的flow也就是TensorFlow的命名来源。
节点可以被分配到多个计算设备上,可以异步和并行地执行操作。因为是有向图,所以只有等到之前的入度节点们的计算状态完成后,当前节点才能执行操作。
计算图的构造流程:
import tensorflow as tfimport numpy as npx_data = np.float32(np.random.rand(2,100))y_data = np.dot([0.1 , 0.2] , x_data) + 0.3b = tf.Variable(tf.zeros([1]))W = tf.Variable(tf.random_uniform([1,2],-1.0,1.0))y = tf.matmul(W,x_data) + bloss = tf.reduce_mean(tf.square(y - y_data))optimizer = tf.train.GradientDescentOptimizer(0.5)train = optimizer.minimize(loss)
1.inference()-尽可能地构建好图表,满足促使神经网路向前反馈并做出预测的要求。
2.loss()-往inference图表中添加生产损失(loss)所需要的操作(ops)。
3.training()-往损失图表中添加计算并应用梯度(gradients)所需的操作。
计算图的使用
TensorFlow程序一般分为两个阶段:
1、定义计算图中所有的计算。
2、执行计算。
先看这段代码:
a = tf.constant([1.0, 2.0], name="a")print(a.graph is tf.get_default_graph())
输出:true
说明在TensorFlow程序中,系统会自动维护一个默认的计算图,通过tf.get_default_graph方法可以获取当前默认的计算图。
当然,除了使用默认的计算图,可以通过tf.Graph方法来生成新的计算图。注意,不同计算图上的张量和运算都不会共享。以下代码显示了如何在不同计算图上定义和使用变量。
import tensorflow as tfg1 = tf.Graph()with g1.as_default(): v = tf.get_variable("v", [1], initializer = tf.zeros_initializer()) # 设置初始值为0g2 = tf.Graph()with g2.as_default(): v = tf.get_variable("v", [1], initializer = tf.ones_initializer()) # 设置初始值为1with tf.Session(graph = g1) as sess: tf.global_variables_initializer().run() with tf.variable_scope("", reuse=True): print(sess.run(tf.get_variable("v")))with tf.Session(graph = g2) as sess: tf.global_variables_initializer().run() with tf.variable_scope("", reuse=True): print(sess.run(tf.get_variable("v")))
输出:
[ 0.]
[ 1.]
在计算图1中将v初始化为0;在计算图2中将v初始化成为1。可以看到运行不同计算图时,变量v的值也是不一样的。
参考:http://www.jeyzhang.com/tensorflow-learning-notes.html
- TensorFlow基础知识1-计算图
- TensorFlow基础知识:计算图中的Op,边,和张量
- TensorFlow计算模型--计算图
- TensorFlow计算模型--计算图
- TensorFlow计算图简介
- Tensorflow基础知识总结(1)
- tensorflow基础知识
- Tensorflow基础知识
- tensorflow基础知识
- Tensorflow基础知识
- 云计算基础知识1
- Tensorflow计算模型 —— 计算图
- (二)TensorFlow计算模型-----计算图
- 1TensorFlow实现自编码器-1.2TensorFlow实现降噪自动编码器设计计算图
- 1TensorFlow实现自编码器-1.3 TensorFlow实现降噪自动编码器--计算图美化
- 1TensorFlow实现自编码器-1.5 TensorFlow实现单隐层自编码器--计算图设计
- 1TensorFlow实现自编码器-1.7TensorFlow实现双隐层自编码器-计算图并运行
- 1_云计算基础知识
- C语言——实例007 输出特殊图案,请在c环境中运行
- C++虚函数实现原理
- 2017 多校2 1001 Is Derek lying?
- 百度地图多个兴趣点(经纬度、坐标点)需要同时显示在地图上,如何设置自动缩放等级
- ICCV 2015 揭开微软152层神经网络的面纱
- TensorFlow基础知识1-计算图
- (转)隐藏在生活里的量化投资密码
- java学习笔记--springboot集成UrlRewrite实现URL伪静态化[jar包和war包]
- csu A(1970): LXX数
- keepalived + LVS
- HDU 1242 Rescue --BFS+重载优先队列
- 2017多校2 1011 Regular polygon
- IMO 2017 T4解答
- 啥玩意儿啊#1