tensorflow 2. 變量和存錢

變量維護圖執(zhí)行過程中的狀態(tài)信息. 下面的例子演示了如何使用變量實現(xiàn)一個簡單的計數(shù)器.

# 創(chuàng)建一個變量, 初始化為標量 0.
state = tf.Variable(0, name="counter")

# 創(chuàng)建一個 op, 其作用是使 state 增加 1

one = tf.constant(1)
new_value = tf.add(state, one)
update = tf.assign(state, new_value)

# 啟動圖后, 變量必須先經過`初始化` (init) op 初始化,
# 首先必須增加一個`初始化` op 到圖中.
init_op = tf.initialize_all_variables()

# 啟動圖, 運行 op
with tf.Session() as sess:
  # 運行 'init' op
  sess.run(init_op)
  # 打印 'state' 的初始值
  print sess.run(state)
  # 運行 op, 更新 'state', 并打印 'state'
  for _ in range(3):
    sess.run(update)
    print sess.run(state)
輸出:
# 0
# 1
# 2
# 3
Fetch

為了取回操作的輸出內容, 可以在使用 Session 對象的 run() 調用 執(zhí)行圖時, 傳入一些 tensor, 這些 tensor 會幫助你取回結果. 在之前的例子里, 我們只取回了單個節(jié)點 state, 但是你也可以取回多個 tensor:

input2 = tf.constant(2.0)
input3 = tf.constant(5.0)
intermed = tf.add(input2, input3)
multiplication = tf.multiply(input1, intermed)

sess = tf.Session()

result = sess.run([multiplication, intermed])
print(result)
#輸出
#[21.0, 7.0]

使用tf.mul會提示錯誤“AttributeError: module ‘tensorflow‘ has no attribute ‘mul‘”,因為乘法名字改了框仔,需使用tf.multiply

對于這類問題:module 'tensorflow' has no attribute 'xxx'
網上的一個整理如下

  • tf.sub()更改為tf.subtract()
  • tf.mul()更改為tf.multiply()
  • tf.types.float32更改為tf.float32
  • tf.pact()更改為tf.stact()
Feed

上述示例在計算圖中引入了 tensor, 以常量或變量的形式存儲. TensorFlow 還提供了 feed 機制, 該機制 可以臨時替代圖中的任意操作中的 tensor 可以對圖中任何操作提交補丁, 直接插入一個 tensor.
feed 使用一個 tensor 值臨時替換一個操作的輸出結果. 你可以提供 feed 數(shù)據(jù)作為 run() 調用的參數(shù). feed 只在調用它的方法內有效, 方法結束, feed 就會消失. 最常見的用例是將某些特殊的操作指定為 "feed" 操作, 標記的方法是使用 tf.placeholder() 為這些操作創(chuàng)建占位符.

input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)
output = tf.multiply(input1, input2)

sess = tf.Session()
print(sess.run([output], feed_dict={input1:[7.], input2:[2.]}))

sess.close()
#輸出:[array([ 14.], dtype=float32)]

為了證明feed的功能,我使用feed修改變量的值

input1 = tf.constant(3.0)
input2 = tf.constant(5.0)
output2 = tf.multiply(input1, input2)

sess = tf.Session()
print(sess.run([output2], feed_dict={input1:7., input2:2.}))
print(sess.run([output2]))
輸出內容為:
[14.0]
[15.0]

這說明feed機制提供了一種“打樁”的機制蓬坡,我們可以任意控制節(jié)點的輸出張量。

使用tensorflow計算投資收益

假設某個程序員30歲磅叛,為了預防以后社保虧空屑咳,決定每月存500塊錢,按照年化5%來每月計算復利弊琴,共計30年兆龙。
看看這個程序員到自己60歲時有多少存款。

import tensorflow as tf 

put_into = tf.constant(500., name="put_into")
month_rate = tf.constant(0.05/12, name="month_rate")

pool = tf.Variable(0.0, name="pool")

sum1 = tf.add(put_into, pool, name="sum1")

interest = tf.multiply(sum1, month_rate, name="interest")

sum2 = tf.add(interest, sum1, name="sum2")

# interest_sum = tf.assign()

update_pool = tf.assign(pool, sum2)

init_op = tf.global_variables_initializer()

with tf.Session() as sess:
    sess.run(init_op)

    for i in range(12*30):
        sum = sess.run(sum2)
        sess.run(update_pool)
        if i%10 == 9:
            print("{}th moth, I have money {} Yuans".format(i, sum))
2018-03-06 23:01:18.676497: I C:\tf_jenkins\home\workspace\rel-win\M\windows\PY\36\tensorflow\core\platform\cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2
9th moth, I have money 5116.02783203125 Yuans
19th moth, I have money 10449.265625 Yuans
29th moth, I have money 16008.9345703125 Yuans
39th moth, I have money 21804.646484375 Yuans
......
309th moth, I have money 316806.09375 Yuans
319th moth, I have money 335372.59375 Yuans
329th moth, I have money 354727.4375 Yuans
339th moth, I have money 374904.03125 Yuans
349th moth, I have money 395937.28125 Yuans
359th moth, I have money 417863.46875 Yuans
本來18萬的本金敲董,借助復利紫皇,變成了41.7萬。

看來存錢還是必要的腋寨,雖然30年后的購買力不好估計聪铺,總比沒有存款強。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末萄窜,一起剝皮案震驚了整個濱河市铃剔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌查刻,老刑警劉巖番宁,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異赖阻,居然都是意外死亡,警方通過查閱死者的電腦和手機踱蠢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進店門火欧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棋电,“玉大人,你說我怎么就攤上這事苇侵「峡” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵榆浓,是天一觀的道長于未。 經常有香客問我,道長陡鹃,這世上最難降的妖魔是什么烘浦? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮萍鲸,結果婚禮上闷叉,老公的妹妹穿的比我還像新娘。我一直安慰自己脊阴,他們只是感情好握侧,可當我...
    茶點故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嘿期,像睡著了一般品擎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上备徐,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天萄传,我揣著相機與錄音,去河邊找鬼坦喘。 笑死盲再,一個胖子當著我的面吹牛,可吹牛的內容都是我干的瓣铣。 我是一名探鬼主播答朋,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼棠笑!你這毒婦竟也來了梦碗?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤蓖救,失蹤者是張志新(化名)和其女友劉穎洪规,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體循捺,經...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡斩例,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了从橘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片念赶。...
    茶點故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡础钠,死狀恐怖,靈堂內的尸體忽然破棺而出叉谜,到底是詐尸還是另有隱情旗吁,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布停局,位于F島的核電站很钓,受9級特大地震影響,放射性物質發(fā)生泄漏董栽。R本人自食惡果不足惜码倦,卻給世界環(huán)境...
    茶點故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望裆泳。 院中可真熱鬧叹洲,春花似錦、人聲如沸工禾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽闻葵。三九已至民泵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間槽畔,已是汗流浹背栈妆。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留厢钧,地道東北人鳞尔。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像早直,于是被迫代替她去往敵國和親寥假。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,941評論 2 355

推薦閱讀更多精彩內容