tensorflow中建立多個計算圖(Graph)
tf程式中,系統會自動建立並維護一個預設的計算圖,計算圖可以理解為神經網路(Neural Network)結構的程式化描述。如果不顯式指定所歸屬的計算圖,則所有的tensor和Operation都是在預設計算圖中定義的,使用tf.get_default_graph()函式可以獲取當前預設的計算圖控制代碼。
# -*- coding: utf-8 -*-) import tensorflow as tf a=tf.constant([1.0,2.0]) b=tf.constant([1.0,2.0]) result = a+b print(a.graph is tf.get_default_graph()) # 輸出為True,表示tensor a 是在預設的計算圖中定義的 print(result.graph is tf.get_default_graph()) # 輸出為True, 表示 Operation result 是在預設的計算圖中定義的 print 'a.graph = {0}'.format(a.graph) print 'default graph = {0}'.format(tf.get_default_graph())
輸出:
True
True
a.graph = <tensorflow.python.framework.ops.Graph object at 0x7f0480c9ca90>
default graph = <tensorflow.python.framework.ops.Graph object at 0x7f0480c9ca90>
tf中可以定義多個計算圖,不同計算圖上的張量和運算是相互獨立的,不會共享。計算圖可以用來隔離張量和計算,同時提供了管理張量和計算的機制。計算圖可以通過Graph.device函式來指定執行計算的裝置,為TensorFlow充分利用GPU/CPU提供了機制。
- 使用 g = tf.Graph()函式建立新的計算圖;
- 在with g.as_default():語句下定義屬於計算圖g的張量和操作
- 在with tf.Session()中通過引數 graph = xxx指定當前會話所執行的計算圖;
- 如果沒有顯式指定張量和操作所屬的計算圖,則這些張量和操作屬於預設計算圖;
- 一個圖可以在多個sess中執行,一個sess也能執行多個圖
建立多個計算圖:
# -*- coding: utf-8 -*-) import tensorflow as tf # 在系統預設計算圖上建立張量和操作 a=tf.constant([1.0,2.0]) b=tf.constant([2.0,1.0]) result = a+b # 定義兩個計算圖 g1=tf.Graph() g2=tf.Graph() # 在計算圖g1中定義張量和操作 with g1.as_default(): a = tf.constant([1.0, 1.0]) b = tf.constant([1.0, 1.0]) result1 = a + b with g2.as_default(): a = tf.constant([2.0, 2.0]) b = tf.constant([2.0, 2.0]) result2 = a + b # 在g1計算圖上建立會話 with tf.Session(graph=g1) as sess: out = sess.run(result1) print 'with graph g1, result: {0}'.format(out) with tf.Session(graph=g2) as sess: out = sess.run(result2) print 'with graph g2, result: {0}'.format(out) # 在預設計算圖上建立會話 with tf.Session(graph=tf.get_default_graph()) as sess: out = sess.run(result) print 'with graph default, result: {0}'.format(out) print g1.version # 返回計算圖中操作的個數
輸出:
with graph g1, result: [ 2. 2.]
with graph g2, result: [ 4. 4.]
with graph default, result: [ 3. 3.]
3
相關推薦
tensorflow中建立多個計算圖(Graph)
tf程式中,系統會自動建立並維護一個預設的計算圖,計算圖可以理解為神經網路(Neural Network)結構的程式化描述。如果不顯式指定所歸屬的計算圖,則所有的tensor和Operation都是在
VisualStudioCode中建立多個ASP.NET Core 專案、類庫、控制檯程式,並新增應用間的引用
首先安裝VisualStudioCode並且可以使用。 1、首先建立MyApps資料夾,作為專案主目錄,下面將在這個資料夾中建立多個web應用程式、型別、控制檯程式等。 2、開啟VisualStudioCode軟體,選擇“File”->"Open Folder",在彈出框中選擇上述建立的資料夾“My
iOS專案中建立多個target
開發過程中,會遇到切環境的需要以供測試及上線需求,專案中建立多個target並配置好,到時候直接切換target就可以滿足需求了。 建立不同的target 1、先建立一個pch檔案如下 #ifndef ZWHelper_h #define ZWHelper_h
Java迴圈中建立多個物件是幾個引用?以及是否執行緒安全
在迴圈中,通過User user = new User();這種方式建立的物件。每次建立的物件是不同的,但是引用是同一個,引用的生命週期是單次迴圈,下次迴圈會覆蓋調上次的引用。 比如這段程式碼: int minId = 0; while (
Xib使用之TableViewCell.xib中建立多個Cell
初次使用xib建立UITableviewCell的時候,我都是一個xib檔案裡,只建立一個Cell,在實際業務中,往往都是一個列表中需要用到多個不同的Cell樣式,這就需要建立N個.h .m .xib檔案。而且這些.m中的實現還差不多。 後來發現,一個.xib檔案中可以建立
KVO---視圖間數據的傳遞:標簽顯示輸入的內容【多個視圖中】
tla trac content color smis rep ret oot ani RootViewController.m #import "ModalViewController.h" @interface RootViewController () @en
單例---視圖間數據的傳遞:標簽顯示輸入的內容【多個視圖中】
release 視圖 pro button data- pos view copy field RootViewController.m - (void)viewDidLoad { [super viewDidLoad]; self.view.
使用python在ArcGIS中合併多個圖層中的資料
#encoding=utf-8 #將當前圖層列表中的多個圖層的向量資料合併到一個圖層中 import arcpy mapdoc = arcpy.mapping.MapDocument("CURRENT") dfm = arcpy.mapping.Lis
【Vue.js學習筆記】8:建立多個Vue例項物件,認識Vue中的元件
建立多個Vue例項物件 這裡在同一個js檔案中建立了兩個Vue例項物件,它們各自能完成前面學的那些功能,同時使用物件名稱也可以互相訪問,協同實現一些功能。 index.html <!DOCTYPE html> <html lang="en" xmlns:v-
spring boot中使用spring JdbcTemplate(一)——連線池建立多個連線
本文參考了網上一些文章,最後整理實踐得出。1、建立一個springboot的demo程式,可以參考我的文章:2、看一下目錄結構:3、首先需要在pom檔案中引入依賴:<!-- https://mvnrepository.com/artifact/mysql/mysql-c
Linux中通過fork()同時建立多個程序
1、使用系統呼叫fork()建立三個子程序;2、各個子程序顯示和輸出一些提示資訊和自己的程序識別符號;3、父程序顯示自己的程序ID和一些提示資訊,然後呼叫waitpid()等待多個子程序結束,並在子程序結束後顯示輸出提示資訊表示程式結束。#include <stdio.
Linux中apache建立多個虛擬主機(訪問多個站點目錄)
因為公司公用一臺開發機,apache服務是公用的,全域性的document是預設的,不便於改動,只能建立虛擬機器主機及埠來通過http訪問自己的站點目錄。 進入etc/httpd/httpd.conf配置檔案: 1.加入listen埠: Listen 81 2
在一個專案中匯入多個不同tensorflow模型
剛開始直接採用呼叫一個模型的方法: (1)定義網路 (2)新建sess:sess = tf.Session(config=config) (3)定義saver:saver = tf.train.S
關於TensorFlow中的多圖(Multiple Graphs)
一、摘要 TensorFlow中的圖(Graph)是眾多操作(Ops)的集合,它描述了具體的操作型別與各操作之間的關聯。在實際應用中,我們可以直接把圖理解為神經網路(Neural Network)結構的程式化描述。TensorFlow中的會話(Session)則實現
Python第三方庫——Matplotlib_在同個figure中繪製多個圖並給出legend
import matplotlib.pyplot as plt line1, = plt.plot([1,2,3], linestyle='--') line2, = plt.plot([3,2,1]
bash shell中利用迴圈建立多個檔案
1.用while迴圈 命令: i=1; while [ $i -le 99 ]; do name=`printf "test%02d.txt" $i`; touch "$name"; i=$(($i+1)); done 2.用for迴圈和seq命令 命令: for i
Xcode中同一Project建立多個target的總結
1.對Targets的理解 關於Targets,Apple的人是這樣說的:“ Targets that define the products to build. A target organizes
在一個專案中,建立多個工程檔案多個目錄建立方法
個人建議直接看文章的最後部分的那種方法,那種方法容易上手,前面幾種很麻煩很累原始碼地址:https://download.csdn.net/my這個程式碼肯定有用,保證能執行。是我自己寫1、在D盤建立空資料夾qMulti 2、使用Qt Creator建立App應用程式:Big
python系列(五)centos6.x中部署多個python版本
python pyenv centos6.x virtualenv 博主QQ:819594300博客地址:http://zpf666.blog.51cto.com/有什麽疑問的朋友可以聯系博主,博主會幫你們解答,謝謝支持!使用pyenv+virtualenv方式部署python多版本pyenv
在一個進程中定義多個線程
daemon 之前 args 設置 tar main art blog thread import threadingfrom time import ctime,sleepimport timedef music(name): print(‘listening to