1. 構建任何擬建立神經網路的藍圖
2. 計算圖的定義及其執行
計算圖是包含節點和邊的網路。本節定義所有要使用的資料,也就是張量(tensor)物件(常量、變數和佔位符),同時定義要執行的所有計算,都是運算操作物件(operation object,簡稱 op)。
計算圖中的節點就是操作
一次加法是乙個操作
一次乘法也是乙個操作
構建一些變數的初始值也是乙個操作
網路中的節點表示物件(張量和運算操作),邊表示運算操作之間流動的張量
tensorflow有兩種邊:使用會話物件來實現計算圖的執行。會話物件封裝了評估張量和操作物件的環境。這裡真正實現了運算操作並將資訊從網路的一層傳遞到另外一層。不同張量物件的值僅在會話物件中被初始化、訪問和儲存。在此之前張量物件只被抽象定義,在會話中才被賦予實際的意義。
# -*- coding:utf-8 -*-
import tensorflow as tf
defmain()
:pass
if __name__==
'__main__'
: main(
)
# -*- coding:utf-8 -*-
import tensorflow as tf
defadd_test()
: a=tf.constant([1
,2,3
,4],name=
'a')
b=tf.constant([1
,2,3
,4],name=
'b')
sum=tf.add(a,b,name=
'sum'
)with tf.session(
)as sess,tf.summary.filewriter(
'./log'
,sess.graph)
as writer:
#列印計算結果
print
(sess.run(sum)
)#顯示計算圖:tensorboard --logdir=log --host=127.0.0.1
在例項中,計算圖由三個節點組成, a 和 b表示這兩個向量,add 是要對它們執行的操作。
為了使這個圖生效,首先需要使用 tf.session() 定義乙個會話物件 sess,然後使用session 類中定義的 run 方法執行它
run(fetches,feed_dict=
none
,options=
none
,run_metadata)
#運算結果的值在 fetches 中提取
在示例中,提取的張量為 sum。
run ()方法將導致在每次執行該計算圖的時候,都將對與 sum相關的張量和操作進行賦值。如果抽取的不是 sum而是 a,那麼最後給出的是向量 a的執行結果為:[1,2,3,4];
此外一次也可以提取乙個或多個張量或操作物件[a,b,sum];在同一段**中也可以有多個會話物件。
with expression [
as target]
:with
-body
expression是任意表示式,獲取上下文管理器,as target可選,with-body是with語句的語句體
with通過__enter__方法初始化,然後在__exit__中做善後以及處理異常。所以使用with處理的物件必須有__enter__()和__exit__()這兩個方法。其中__ enter__()方法在語句體(with語句包裹起來的**塊)執行之前進入執行,__ exit __()方法在語句體執行完畢退出後執行。
expression 要返回乙個上下文管理器物件,該物件並不賦值給 as 子句中的 target ,如果指定了 as 子句的話,會將上下文管理器的 __enter__方法的返回值賦值給 target。target 可以是單個變數,或者由「()」括起來的元組。不管執行體語句中是否有異常,with語句都能保證執行完畢後關閉開啟的控制代碼。
with tf.session(
)as sess,tf.summary.filewriter(
'./log'
,sess.graph)
as writer:
expression可以有多個,相同效果可以用巢狀with語句來實現
with tf.session(
)as sess:
#列印計算結果
print
(sess.run(sum)
)#顯示計算圖:tensorboard --logdir=log --host=127.0.0.1
with tf.summary.filewriter(
'./log'
,sess.graph)
as writer:
writer.flush(
)
tf.interactivesession():是一種交替式的會話方式,它讓自己成為了預設的會話,也就是說使用者在單一會話的情境下,不需要指明用哪個會話也不需要更改會話執行的情況下,就可以執行起來,結果就是執行run和eval()函式可以不指明sessiontf.session():執行run和eval()函式需要指明session。tf.interactivesession():它能讓你在執行圖的時候,插入一些計算圖,這些計算圖是由某些操作(operations)構成的。這對於工作在互動式環境中的人們來說非常便利,比如使用ipython。
tf.session():需要在啟動session之前構建整個計算圖,然後啟動該計算圖
sess=tf.interactivesession(
)print
(sum.
eval()
)
與下面等價
sess=tf.session(
)with sess as default:
print
(sum.
eval()
)
tensorflow學習筆記
tensorflow安裝可以直接通過命令列或者原始碼安裝,在此介紹tensorflow8命令列安裝如下 安裝tensorflow sudo pip install upgrade 另外,解除安裝tensorflow命令為 sudo pip uninstall tensorflow tensorflo...
Tensorflow學習筆記
1.如何在虛擬機器中安裝tensor flow 1 首先安裝pip pip install 2 pip install 2.學習tensorflow需要學習 python and linux 3.使用 tensorflow,你必須明白 tensorflow 1 使用圖 graph 來表示計算任務.2...
TensorFlow學習筆記
1 擬合直線 import the library import tensorflow as tf import numpy as np prepare train data train x np.linspace 1,1,100 temp1 train x,temp2 train x.shape,...