tensorflow 中Graphs的相關文件

2021-07-27 08:07:12 字數 4014 閱讀 7273

本節主要介紹建立tensorflow圖的相關類或函式

* 核心圖的資料結構(core graph data structures)

tf.graph

操作描述

class tf.graph

tensorflow中的計算以圖資料流的方式表示

乙個圖包含一系列表示計算單元的操作物件

以及在圖中流動的資料單元以tensor物件表現

tf.graph.__init__()

建立乙個空圖

tf.graph.as_default()

乙個將某圖設定為預設圖,並返回乙個上下文管理器

如果不顯式新增乙個預設圖,系統會自動設定乙個全域性的預設圖。

所設定的預設圖,在模組範圍內所定義的節點都將預設加入預設圖中

tf.graph.as_graph_def

(from_version=none, add_shapes=false)

返回乙個圖的序列化的graphdef表示

序列化的graphdef可以匯入至另乙個圖中(使用 import_graph_def())

或者使用c++ session api

tf.graph.finalize()

完成圖的構建,即將其設定為唯讀模式

tf.graph.finalized

返回true,如果圖被完成

tf.graph.control_dependencies(control_inputs)

定義乙個控制依賴,並返回乙個上下文管理器

with g.control_dependencies([a, b, c]):

# `d` 和 `e` 將在 `a`, `b`, 和`c`執行完之後執行.

d = …

e = …

tf.graph.device(device_name_or_function)

定義執行圖所使用的裝置,並返回乙個上下文管理器

with g.device('/gpu:0'): ...

with g.device('/cpu:0'): ...

tf.graph.name_scope(name)

為節點建立層次化的名稱,並返回乙個上下文管理器

tf.graph.add_to_collection(name, value)

將value以name的名稱儲存在收集器(collection)中

tf.graph.get_collection(name, scope=none)

根據name返回乙個收集器中所收集的值的列表

tf.graph.as_graph_element

(obj, allow_tensor=true, allow_operation=true)

返回乙個圖中與obj相關聯的物件,為乙個操作節點或者tensor資料

tf.graph.get_operation_by_name(name)

根據名稱返回操作節點

tf.graph.get_tensor_by_name(name)

根據名稱返回tensor資料

tf.graph.get_operations()

返回圖中的操作節點列表

tf.graph.gradient_override_map(op_type_map)

用於覆蓋梯度函式的上下文管理器

#class tf.graph

#tensorflow執行時需要設定預設的圖

g = tf.graph()

with g.as_default():

# define operations and tensors in `g`.

c = tf.constant(30.0)

assert c.graph is g

##也可以使用tf.get_default_graph()獲得預設圖,也可在基礎上加入節點或子圖

c = tf.constant(4.0)

assert c.graph is tf.get_default_graph()

#tf.graph.as_default

#以下兩段**功能相同

#1、使用graph.as_default():

g = tf.graph()

with g.as_default():

c = tf.constant(5.0)

assert c.graph is g

#2、構造和設定為預設

with tf.graph().as_default() as g:

c = tf.constant(5.0)

assert c.graph is g

#tf.graph.control_dependencies(control_inputs)

# 錯誤**

defmy_func

(pred, tensor):

t = tf.matmul(tensor, tensor)

with tf.control_dependencies([pred]):

# 乘法操作(op)沒有建立在該上下文,所以沒有被加入依賴控制

return t

# 正確**

defmy_func

(pred, tensor):

with tf.control_dependencies([pred]):

# 乘法操作(op)建立在該上下文,所以被加入依賴控制中

#執行完pred之後再執行matmul

return tf.matmul(tensor, tensor)

# tf.graph.name_scope(name)

# 乙個圖中包含有乙個名稱範圍的堆疊,在使用name_scope(...)之後,將壓(push)新名稱進棧中,

#並在下文中使用該名稱

with tf.graph().as_default() as g:

c = tf.constant(5.0, name="c")

assert c.op.name == "c"

c_1 = tf.constant(6.0, name="c")

assert c_1.op.name == "c_1"

# creates a scope called "nested"

with g.name_scope("nested") as scope:

nested_c = tf.constant(10.0, name="c")

assert nested_c.op.name == "nested/c"

# creates a nested scope called "inner".

with g.name_scope("inner"):

nested_inner_c = tf.constant(20.0, name="c")

assert nested_inner_c.op.name == "nested/inner/c"

# create a nested scope called "inner_1".

with g.name_scope("inner"):

nested_inner_1_c = tf.constant(30.0, name="c")

assert nested_inner_1_c.op.name == "nested/inner_1/c"

# treats `scope` as an absolute name scope, and

# switches to the "nested/" scope.

with g.name_scope(scope):

nested_d = tf.constant(40.0, name="d")

assert nested_d.op.name == "nested/d"

with g.name_scope(""):

e = tf.constant(50.0, name="e")

assert e.op.name == "e"

tensorflow中tfrecords使用介紹

這篇文章主要講一下如何用tensorflow中的標準資料讀取方式簡單的實現對自己資料的讀取操作 主要分為以下兩個步驟 1 將自己的資料集轉化為 xx.tfrecords的形式 2 在自己的程式中讀取並使用.tfrecords進行操作 資料集轉換 為了便於講解,我們簡單製作了乙個資料,如下圖所示 程式...

Tensorflow中dynamic rnn的用法

1 api介面dynamic rnn cell,inputs,sequence length none,initial state none,dtype none,parallel iterations none,swap memory false,time major false,scope no...

TensorFlow中遮蔽warning的方法

tensorflow的日誌級別分為以下三種 tf cpp min log level 1 預設設定,為顯示所有資訊 tf cpp min log level 2 只顯示error和warining資訊 tf cpp min log level 3 只顯示error資訊 所以,當tensorflow出...