日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TF之RNN:TF的RNN中的常用的两种定义scope的方式get_variable和Variable

發布時間:2025/3/21 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TF之RNN:TF的RNN中的常用的两种定义scope的方式get_variable和Variable 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TF之RNN:TF的RNN中的常用的兩種定義scope的方式get_variable和Variable

?

?

目錄

輸出結果

代碼設計


?

?

輸出結果

?

代碼設計

# tensorflow中的兩種定義scope(命名變量)的方式tf.get_variable和tf.Variable。Tensorflow當中有兩種途徑生成變量 variableimport tensorflow as tf#T1法 tf.name_scope() with tf.name_scope("a_name_scope"):initializer = tf.constant_initializer(value=1) #定義常量var1 = tf.get_variable(name='var1', shape=[1], dtype=tf.float32, initializer=initializer) #創建變量var2 = tf.Variable(name='var2', initial_value=[2], dtype=tf.float32)var21 = tf.Variable(name='var2', initial_value=[2.1], dtype=tf.float32)var22 = tf.Variable(name='var2', initial_value=[2.2], dtype=tf.float32) with tf.Session() as sess:sess.run(tf.global_variables_initializer())#以下打印出每一種Variable的名字及其值print(var1.name) # var1:0print(sess.run(var1)) # [ 1.]print(var2.name) # a_name_scope/var2:0print(sess.run(var2)) # [ 2.]print(var21.name) # a_name_scope/var2_1:0print(sess.run(var21)) # [ 2.0999999]print(var22.name) # a_name_scope/var2_2:0print(sess.run(var22)) # [ 2.20000005] #使用 tf.Variable()定義的時候, 雖然 name都一樣, 但是為了不重復變量名, Tensorflow輸出的變量名并不是一樣的. #所以, 本質上 var2, var21, var22 并不是一樣的變量. #而另一方面, 使用tf.get_variable()定義的變量不會被tf.name_scope()當中的名字所影響. print('以下輸出的是T2第二種方法') #T2法 tf.variable_scope() #如果想要達到重復利用變量的效果, 我們就要使用 tf.variable_scope(), 并搭配 tf.get_variable() 這種方式產生和提取變量. #不像 tf.Variable() 每次都會產生新的變量, tf.get_variable() 如果遇到了同樣名字的變量時, #它會單純的提取這個同樣名字的變量(避免產生新變量). 而在重復使用的時候, 一定要在代碼中強調 scope.reuse_variables(), #否則系統將會報錯, 以為你只是單純的不小心重復使用到了一個變量. with tf.variable_scope("a_variable_scope") as scope:initializer = tf.constant_initializer(value=3)var3 = tf.get_variable(name='var3', shape=[1], dtype=tf.float32, initializer=initializer)scope.reuse_variables()var3_reuse = tf.get_variable(name='var3',)var4 = tf.Variable(name='var4', initial_value=[4], dtype=tf.float32)var4_reuse = tf.Variable(name='var4', initial_value=[4], dtype=tf.float32) with tf.Session() as sess:sess.run(tf.global_variables_initializer())print(var3.name) # a_variable_scope/var3:0print(sess.run(var3)) # [ 3.]print(var3_reuse.name) # a_variable_scope/var3:0print(sess.run(var3_reuse)) # [ 3.]print(var4.name) # a_variable_scope/var4:0print(sess.run(var4)) # [ 4.]print(var4_reuse.name) # a_variable_scope/var4_1:0print(sess.run(var4_reuse)) # [ 4.]

總結

以上是生活随笔為你收集整理的TF之RNN:TF的RNN中的常用的两种定义scope的方式get_variable和Variable的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。