tensorflow编程: Building Graphs

Core graph data structures

tf.Graph

每次都必须要指定一个graph作为as_default,并只能在该graph中进行一切操作。

import tensorflow as tf

# 程序从一开始就默认有一个 graph 。任何的 tf.Graph() 操作 都是在新建 graph,但都只能在新建的那个 上下文管理器 内发挥作用
a = tf.get_default_graph()

# 该graph 继承 a.graph,则 该graph 内 default_graph 就为 a.graph
with a.as_default():
    b = tf.get_default_graph()
    assert b is a

# 通过 tf.Graph() 新建了一个 graph,则 该graph 内 default_graph 就为 新graph,且仅仅作用于该 上下文管理器内部
with tf.Graph().as_default():
    c = tf.get_default_graph()
    assert c is not a

assert tf.get_default_graph() is a
Process finished with exit code 0


每个环境下 存在只能存在 一个 graph 。非初始默认的 graph 通过 tf.Graph() 新建,但必须通过 as_default 才能启用形成一个 context manager 小环境来供使用。tf.Graph().as_default() 的作用 就是 新建——启用 二合一,一步到位执行。

import tensorflow as tf

a = tf.get_default_graph()
b = tf.Graph()
with b.as_default():
    c = tf.get_default_graph()
assert a is not b
assert b is c
Process finished with exit code 0

tf.Operation

tf.Tensor

Tensor types

tf.DType

表示Tensor中元素的类型。(这个api的作用暂时不是很懂,以后再回过头来看。)

import tensorflow as tf

foo = 1
print tf.DType(foo).is_floating
print tf.DType(foo)
print tf.as_dtype(foo)
print type(foo)
True
<dtype: 'float32'>
<dtype: 'float32'>
<type 'int'>

tf.as_dtype

Utility functions

tf.device

指定使用哪块处理器

tf.container

tf.name_scope

tf.name_scope (name, default_name=None, values=None)

tf.name_scope 只能对 tf.Variable() 加前缀,对 tf.get_variable() 无效。

import tensorflow as tf

with tf.name_scope("my"):
    initializer = tf.constant_initializer(value=10)
    var1 = tf.get_variable(name='var1', shape=[1], dtype=tf.float32, initializer=initializer)
    var2 = tf.Variable(name='var2', initial_value=20, dtype=tf.float32)

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print var1.name, sess.run(var1)
    print var2.name, sess.run(var2)
var1:0 [ 10.]

# 只有 tf.Variable() 被加了前缀。
my/var2:0 20.0

tf.control_dependencies

tf.convert_to_tensor

tf.convert_to_tensor (value, dtype=None, name=None, preferred_dtype=None)

将变量类型转换为 tensor型

import tensorflow as tf

a = 1
b = tf.convert_to_tensor(a)
print type(a), type(b)
<type 'int'> <class 'tensorflow.python.framework.ops.Tensor'>

Process finished with exit code 0

tf.get_default_graph

返回 当前所在的graph

# 见 tf.Graph

tf.reset_default_graph

重设 当前所在的graph

import tensorflow as tf

a = tf.get_default_graph()
tf.reset_default_graph()
assert tf.get_default_graph() is not a

Process finished with exit code 0

Graph collections

tf.add_to_collection

收集并归类存放 键值对

tf.add_to_collection (name, value)

import tensorflow as tf

var1 = 10
var2 = 20
tf.add_to_collection('var_1', value=var1)
print tf.get_collection(key='var_1'), type(tf.get_collection(key='var_1'))
print tf.get_collection(key='var_2'), type(tf.get_collection(key='var_2'))
assert list([var1]) == tf.get_collection(key='var_1')
[10] <type 'list'>
[] <type 'list'>

Process finished with exit code 0

tf.get_collection

按名索取 tf.add_to_collection() 收集到的 键值对 ,以 list 形式返回;如不存在着返回 空list

tf.get_collection (key, scope=None)

# 同 tf.add_to_collection

tf.get_collection_ref

感觉和 tf.get_collection 的不同就在于 没有 scope 参数,所以就没有了指定 scope 的功能。

tf.get_collection_ref (key)

import tensorflow as tf

var1 = 10
tf.add_to_collection('var_1', value=var1)
print tf.get_collection_ref(key='var_1'), type(tf.get_collection_ref(key='var_1'))
[10] <type 'list'>

tf.GraphKeys

略。

Defining new operations

tf.TensorShape

略。

tf.Dimension

略。

tf.op_scope

略。

For libraries building on TensorFlow

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值