TensorFlow在特定的作用域下獲取變數

2021-08-19 04:07:15 字數 1797 閱讀 4554

一 例項描述

在作用域下,可以使用get_variable和巢狀variable_scope。

get_variable建立兩個同樣名字的變數是行不通的,如下**會報錯。

var1 = tf.get_variable("firstvar",shape=[2],dtype=tf.float32)

var2 = tf.get_variable("firstvar",shape=[2],dtype=tf.float32)

如果真的想這麼做,可以使用variable_scope將它們隔開,見下面**

二 **

import tensorflow as tf

tf.reset_default_graph()

#var1 = tf.get_variable("firstvar",shape=[2],dtype=tf.float32)

#var2 = tf.get_variable("firstvar",shape=[2],dtype=tf.float32)

with tf.variable_scope("test1", ):

var1 = tf.get_variable("firstvar",shape=[2],dtype=tf.float32)

with tf.variable_scope("test2"):

var2 = tf.get_variable("firstvar",shape=[2],dtype=tf.float32)

print ("var1:",var1.name)

print ("var2:",var2.name)

三 執行結果

var1: test1/firstvar:0

var2: test2/firstvar:0

四 說明

var1和var2都使用firstvar的名字來定義。通過輸出可以看出,其生成的兩個變數var1和var2是不同的,它們作用在不同的scope下,這就是scope的作用。

scope還支援巢狀,見下面**。

五 **

import tensorflow as tf

tf.reset_default_graph()

#var1 = tf.get_variable("firstvar",shape=[2],dtype=tf.float32)

#var2 = tf.get_variable("firstvar",shape=[2],dtype=tf.float32)

with tf.variable_scope("test1", ):

var1 = tf.get_variable("firstvar",shape=[2],dtype=tf.float32)

with tf.variable_scope("test2"):

var2 = tf.get_variable("firstvar",shape=[2],dtype=tf.float32)

print ("var1:",var1.name)

print ("var2:",var2.name)

六 執行結果

var1: test1/firstvar:0

var2: test1/test2/firstvar:0

tensorflow 卷積 設定特定卷積核

映象問題 pytorch 自定義卷積核進行卷積 卷積核訂製 有時想用tensorflow的conv2d的卷積操作,實現一些特定的濾波操作,如patch求和 計算梯度等,這時可以通過設計特定的卷積核來實現功能。先看tf.nn.conv2d的各個引數 tf.nn.conv2d input,filter,...

TensorFlow在windows 下的安裝

再說一句 本文為那些想要搭建tensorflow的童鞋提出可行方案,只想以博主慘痛的經歷為你們填好不必要的坑,讓你們輕裝上陣,將重點放在後面的學習中。注意版本,樓主選擇的是4.2.0的anaconda,它自帶python3.5,tensorflow要用在python3.5上,所以選擇這個版本 然後安...

TensorFlow在Windows上的安裝之路

google上點了無數的連線,翻了無數的帖子,因版本不匹配問題,將python cuda解除安裝又重灌。搗鼓了一天,終於把tensorflow環境搭建好了。整理了兩個比較有用的帖子,1 知乎回答 手把手教你搭建谷歌tensorflow深度學習開發環境!2 windows環境下anaconda安裝te...