tensorflow 獲取變數&列印權值等方法
tensorflow 獲取變數&列印權值等方法
在使用tensorflow中,我們常常需要獲取某個變數的值,比如:列印某一層的權重,通常我們可以直接利用變數的name屬性
來獲取,但是當我們利用一些第三方的庫來構造神經網路的layer時,存在一種情況:就是我們自己無法定義該層的變數,因為
是自動進行定義的。比如用tensorflow的slim庫時:
def resnet_stack(images, output_shape, hparams, scope=None):
"""Create a resnet style transfer block.
Args:
images: [batch-size, height, width, channels] image tensor to feed as input
output_shape: output image shape in form [height, width, channels]
hparams: hparams objects
scope: Variable scope
Returns:
Images after processing with resnet blocks.
"""
end_points = {}
if hparams.noise_channel:
# separate the noise for visualization
end_points['noise'] = images[:, :, :, -1]
assert images.shape.as_list()[1:3] == output_shape[0:2]
with tf.variable_scope(scope, 'resnet_style_transfer', [images]):
with slim.arg_scope(
[slim.conv2d],
normalizer_fn=slim.batch_norm,
kernel_size=[hparams.generator_kernel_size] * 2,
stride=1):
net = slim.conv2d(
images,
hparams.resnet_filters,
normalizer_fn=None,
activation_fn=tf.nn.relu)
for block in range(hparams.resnet_blocks):
net = resnet_block(net, hparams)
end_points['resnet_block_{}'.format(block)] = net
net = slim.conv2d(
net,
output_shape[-1],
kernel_size=[1, 1],
normalizer_fn=None,
activation_fn=tf.nn.tanh,
scope='conv_out')
end_points['transferred_images'] = net
return net, end_points
我們希望獲取第一個卷積層的權重weight,該怎麼辦呢?? 在訓練時,這些可訓練的變數會被tensorflow儲存在 tf.trainable_variables() 中,於是我們就可以通過列印 tf.trainable_variables() 來獲取該卷積層的名稱(或者你也可以自己根據scope來看出來該變數的name ), 然後利用tf.get_default_grap().get_tensor_by_name 來獲取該變數。舉個簡單的例子:
import tensorflow as tf
with tf.variable_scope("generate"):
with tf.variable_scope("resnet_stack"):
#簡單起見,這裡沒有用第三方庫來說明,
bias = tf.Variable(0.0,name="bias")
weight = tf.Variable(0.0,name="weight")
for tv in tf.trainable_variables():
print (tv.name)
b = tf.get_default_graph().get_tensor_by_name("generate/resnet_stack/bias:0")
w = tf.get_default_graph().get_tensor_by_name("generate/resnet_stack/weight:0")
with tf.Session() as sess:
tf.global_variables_initializer().run()
print(sess.run(b))
print(sess.run(w))
結果如下:
相關推薦
tensorflow 獲取變數&列印權值等方法
tensorflow 獲取變數&列印權值等方法 在使用tensorflow中,我們常常需要獲取某個變數的值,比如:列印某一層的權重,通常我們可以直接利用變數的name屬性 來獲取,但是當我們
java反射獲取字段的屬性值,以及為字段賦值等方法
通過 獲取 首字母 color als 遍歷 方法 access col 1.獲取某個類的屬性值 1 /*利用getter方法獲取值(首字母大寫) 2 CjJssetDTO obj; 3 */ 4 String filed
D. Powerful array 離線+莫隊算法 給定n個數,m次查詢;每次查詢[l,r]的權值; 權值計算方法:區間某個數x的個數cnt,那麽貢獻為cnt*cnt*x; 所有貢獻和即為該區間的值;
code ++ 計算方法 equal ati contains tdi ces sum D. Powerful array time limit per test 5 seconds memory limit per test 256 megabytes input st
Map四種獲取key和value值的方法,以及對map中的元素排序(轉)
compareto map.entry 排序 區別 sta hashmap 得到 package log 獲取map的值主要有四種方法,這四種方法又分為兩類,一類是調用map.keySet()方法來獲取key和value的值,另一類則是通過map.entrySet()方法來
獲取apk證書MD5值的方法
APK承襲JAVA,證書RSA檔案生成方式與JAVA同源,獲取APK證書MD5思路: 得到APK的RSA證書檔案 使用Java工具的keyytool命令獲取 使用該工具準備條件(2選1即可): 安裝JDK(Java Development Kit)環境即可 為確保執行,可新增到環境變數或者在cmd視窗
vue -- 父元件通過$refs獲取子元件的值和方法
前言 在vue專案中元件之間的通訊是很常見的問題,同時也是很重要的問題,我們大致可以將其分為三種情況: 父傳子:在父元件中繫結值,在子元件中用props接收 子傳父:在父元件中監聽一個事件,在子元件中利用$emit觸發這個事件並帶上資料作為第二個引數,這時父
獲取apk證書MD5值的方法(JDK的keytool命令)
APK承襲JAVA,證書RSA檔案生成方式與JAVA同源,獲取APK證書MD5思路: 得到APK的RSA證書檔案使用Java工具的keyytool命令獲取使用該工具準備條件(2選1即可): 安裝JDK(Java Development Kit)環境即可為確保執行,可新增到環
java中獲取map的鍵值對方法
1、我們知道假設在java中的map,我們知道某一個鍵時,我們很容易通過鍵找到對應的值,這個是map中最常用的。 比如: map<Integer,String> map=new HashMap<Integer,String>(); map.put("
Jquery遍歷checkbox獲取選中項value值的方法
jQuery(function($){ $("input[name='key']:checkbox").click(function(){ var ids = ''; var flag = 0; $("#ids").attr("value",ids); $("input[name='key']:
jquery操作select下拉框的多種方法(選中,取值,賦值等
console 多選框 bus move dso rul 調用 define @value http://wenku.baidu.com/link?url=9N4HzvSx12pi4naZfs-Cf7P6MPteTuOoINlfInCJJPr1Tx2QtW7iY_7J_g0
javascript 獲取DropDownList選定值的方法
index select clas -h asc lan title selected tle <script type="text/javascript" language="javascript"> function submitData(
jquery操作select下拉框的多種方法(選中,取值,賦值等)
單選框 很多 輸出 checked ref mov define text Language Query獲取Select選擇的Text和Value: 語法解釋: 1. $("#select_id").change(function(){//code...}); //為S
C#後臺創建控件並獲取值的方法
add border 入門 span num dddd plugin null object 本文實例講述了C#後臺創建控件並獲取值的方法。分享給大家供大家參考。具體實現方法如下: 前臺代碼: 代碼如下: <form id=”form1″ runat=”serv
神經網絡中權值初始化的方法
網絡 mac tro 推導 6.4 linear diff ati soft from:http://blog.csdn.net/u013989576/article/details/76215989 權值初始化的方法主要有:常量初始化(constant)、高斯分布初始化(
C#分析URL參數並獲取參數和值對應列表的方法
滾動 接口 plugin 表達 .com orm src lex cursor 本文實例講述了C#分析URL參數獲取參數和值對應列表的方法。分享給大家供大家參考。具體分析如下: 這個C#函數用於分析url中傳遞的所有參數,輸出一個參數名和參數值對應的NameValueCo
Android Studio獲取開發版SHA1值和發布版SHA1值的史上最詳細方法
nal code tail JD rip 通過 提示 打開 tor 前言:使用百度地圖時需要秘鑰,申請秘鑰時需要SHA1值,所以今天就總結一下怎麽獲取這個值。 正常情況下: 一、獲取開發版SHA1: 在此我直接用AndroidStudio提供的命令控制臺了,畢竟做Andro
C#獲取文件MD5值方法
pri throw exceptio cnblogs string ssa turn blog nbsp https://www.cnblogs.com/Ruiky/archive/2012/04/16/2451663.html private static str
Properties文件工具類的使用--獲取所有的鍵值、刪除鍵、更新鍵等操作
exce except 存在 loader contain protected remove path entryset 有時候我們希望處理properties文件,properties文件是鍵值對的文件形式,我們可以借助Properties類操作。 工具類如下:(
Properties檔案工具類的使用--獲取所有的鍵值、刪除鍵、更新鍵等操作
有時候我們希望處理properties檔案,properties檔案是鍵值對的檔案形式,我們可以藉助Properties類操作。 工具類如下:(程式碼中日誌採用了slf4j日誌) package cn.xm.exam.utils; import java.io.File; i
Spring Boot使用Value註解給靜態變數賦值的方法
昨天在使用@Value註解給靜態變數賦值的時候,發現靜態變數的值始終是null。後來搜尋一下得知其中原因,Spring Boot 不允許/不支援把值注入到靜態變數中。但是我們可以變通一下解決這個問題。因為Spring Boot 支援set方法注入,我們可以利用非靜態set方法注入靜態變數。程式碼