Tensorflow累加的實(shí)現(xiàn)案例
由于python內(nèi)部的變量其實(shí)都是reference,而Tensorflow實(shí)現(xiàn)的時(shí)候也沒(méi)有意義去判斷輸出是否是同一變量名,從而判定是否要新建一個(gè)Tensor用于輸出。Tensorflow為了滿(mǎn)足所有需求,定義了兩個(gè)不同的函數(shù):tf.add和tf.assign_add。從名字即可看出區(qū)別,累加應(yīng)該使用tf.assign_add。同理的還有tf.assign_sub和tf.assign。
具體地,筆者需要一個(gè)iteration counter類(lèi)似的變量,即每次使用一個(gè)batch更新參數(shù)之后都使得該變量加一,進(jìn)而控制learning rate等參數(shù)來(lái)調(diào)節(jié)學(xué)習(xí)過(guò)程。
最初的實(shí)現(xiàn)如下:
a = tf.Variable(tf.zeros(1)) a = tf.add(a,tf.ones(1)) sess = tf.Session() sess.run(tf.global_variable_initializer()) for i in range(1000): print(sess.run(a))
那因?yàn)榈谝恍写a輸出的a和第二行代碼輸出的a,雖然變量名相同,但是實(shí)質(zhì)指向的變量以及空間都不同,每次輸出的都是1。
更改后的代碼則是如下:
a = tf.Variable(tf.zeros(1)) a = tf.assign_add(a,tf.ones(1)) sess = tf.Session() sess.run(tf.global_variable_initializer()) for i in range(1000): print(sess.run(a))
以上這篇Tensorflow累加的實(shí)現(xiàn)案例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
windows系統(tǒng)多個(gè)python中更改默認(rèn)python版本
這篇文章主要給大家介紹了關(guān)于windows系統(tǒng)多個(gè)python中更改默認(rèn)python版本的相關(guān)資料,在Python開(kāi)發(fā)中,不同的項(xiàng)目往往需要使用不同的Python版本,需要的朋友可以參考下2023-09-09
Django提示mysql版本過(guò)低:django.db.utils.NotSupportedError: My
這篇文章主要介紹了Django提示mysql版本過(guò)低:django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.26).的解決方法,文中有詳細(xì)的解決方案,具有一定的參考價(jià)值,需要的朋友可以參考下2024-03-03
Python實(shí)現(xiàn)將MySQL數(shù)據(jù)庫(kù)查詢(xún)結(jié)果導(dǎo)出到Excel
在實(shí)際工作中,我們經(jīng)常需要將數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)出到Excel表格中進(jìn)行進(jìn)一步的分析和處理,Python中的pymysql和xlsxwriter庫(kù)提供了很好的解決方案,下面我們就來(lái)看看具體操作方法吧2023-11-11
python rsa實(shí)現(xiàn)數(shù)據(jù)加密和解密、簽名加密和驗(yàn)簽功能
本篇文章主要說(shuō)明python庫(kù)rsa生成密鑰對(duì)數(shù)據(jù)的加密解密,api接口的簽名和驗(yàn)簽功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-09-09

