TensorFlow计算模型--计算图

tensorflow版本:

>>> tf.__version__
'1.4.0'

python 版本:

Python 3.5.2

可以说,TensorFlow日新月异,刚买的TensorFlow的书,只是0.9.0,自己装的是1.4.0,很多的语法都出错,真是让我头大啊。

1. 计算图的使用

1.1运算代码

计算图,就是包括张量(多维数组)和运算的计算模型。

使用《TensorFlow实战Google框架》给的代码,报错。

>>> import tensorflow as tf
>>> g=tf.Graph()

>>> with g.as_default():
...     v = tf.get_variable("v", shape=[1], initializer=tf.zeros_initializer)

>>> with tf.Session(graph=g) as sess:
...     tf.globalvariables_initialize
...     with tf.variable_scope("",reuse=True):
...             print(sess.run(tf.get_variable("v")))
...
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
AttributeError: module 'tensorflow' has no attribute 'globalvariables_initialize
'

无奈,重新找了代码。

以下是用notepad++编写的程序。

输入

#coding:utf-8
import tensorflow as tf

g1 = tf.Graph()
with g1.as_default():
    # 在图g1中定义初始变量c, 并设置初始值为0
    v = tf.get_variable("v", shape=[1], initializer = tf.zeros_initializer(dtype=tf.float32))

g2 = tf.Graph()
with g2.as_default():
    # 在图g1中定义初始变量c, 并设置初始值为1
    v = tf.get_variable("v", shape=[1], initializer = tf.ones_initializer(dtype=tf.float32))


with tf.Session(graph=g1) as sess:
    sess.run(tf.global_variables_initializer())
    with tf.variable_scope('', reuse=True):
        # 输出值为0
        print(sess.run(tf.get_variable("v")))



with tf.Session(graph=g2) as sess:
    sess.run(tf.global_variables_initializer())
    with tf.variable_scope('', reuse=True):
       # 输出值为1
       print(sess.run(tf.get_variable('v')))

输出

[ 0.]
[ 1.]

知识点:
1、使用tf.Graph()创建计算图;使用tf.Graph.as_default(),来进行计算图默认值更改;
2、tf.global_variables_initilizer()获得计算图变量初始值;
3、创建session会话来进行计算;
4、TensorFlow使用计算图来隔离张量、计算,如,两个计算图下的同一个变量v值可以不同。

1.2 基本操作语法

关于集合(collection);

语法作用
add_to_collection(name, value)使用给定的名称往collection添加值
as_default()返回一个使此Graph成为默认的计算图
get_collection(name, scope=None)使用给定的名称返回collection中的值列表

参考:

  1. 计算图代码
  2. www.tensenflow.org官方解释(404)
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页