Tensorflow 自定義loss的情況下初始化部分變量方式
一般情況下,tensorflow里面變量初始化過程為:
#variables ........... #..................... init = tf.initialize_all_variables() sess.run(init)
這里 tf.initialize_all_variables() 會初始化所有的變量。
實(shí)際過程中,假設(shè)有a, b, c三個(gè)變量,其中a已經(jīng)被初始化了,只想單獨(dú)初始化b,c,那么:
#variables ... ... init = tf.variables_initializer([b,c]) sess.run(init)
此外,如果自行修改了optimizer,如下代碼就會報(bào)錯(cuò):
#definition of variables a, b, c ... .... my_optimizer = tf.train.RMSProp(learning_rate = 0.1).minimize(my_cost) init = tf.variables_initializer([b,c]) sess.run(init)
這是因?yàn)樽约憾x的optimizer會生成新的variables,但是在init里面并沒有初始化,所以無法訪問,會報(bào)錯(cuò)。解決方法如下:
a = tf.Variables(...) #line N temp = set(tf.all_variables()) b = tf.Variables(...) c = tf.Variables(...) #definition of my optimizer optimizer = tf.train....... init = tf.variables_initializer(set(tf.all_varialbles())-temp) # line M sess.run(init)
首先,temp = set(tf.all_variables()) 將該行(line N)代碼之前的所有變量保存在temp中,接下來定義變量b, c,以及自定義的optimizer,然后 set(tf.all_varialbles()存儲了改行(line M)之前的所有變量(包括optimizer生成的變量以及temp中所含的變量),set(tf.all_varialbles())-temp相減得到line N~M這幾行定義的變量。
以上這篇Tensorflow 自定義loss的情況下初始化部分變量方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何在python開發(fā)工具PyCharm中搭建QtPy環(huán)境(教程詳解)
這篇文章主要介紹了在python開發(fā)工具PyCharm中搭建QtPy環(huán)境,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02教你怎么用PyCharm為同一服務(wù)器配置多個(gè)python解釋器
當(dāng)我們在服務(wù)器上創(chuàng)建了多個(gè)虛擬環(huán)境時(shí),也可以在 PyCharm 中配置這些虛擬環(huán)境,方便不同的項(xiàng)目使用不同的環(huán)境,然而按照網(wǎng)上教程添加多個(gè)python解釋器后,PyCharm會自動(dòng)幫我們創(chuàng)建多個(gè)重復(fù)的服務(wù)器,本文主要給出該問題的解決方法,同時(shí)也對添加解釋器做一個(gè)詳細(xì)的講解2021-05-05django框架用戶權(quán)限中的session緩存到redis中的方法
今天小編就為大家分享一篇django框架用戶權(quán)限中的session緩存到redis中的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08Python實(shí)現(xiàn)生成日報(bào)的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)生成日報(bào)的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-06-06