【2020-05-10】tf 學(xué)習(xí)筆記 (一)

tf.nn.embedding_lookup()

# tf.nn.embedding_lookup(
        #      params,              表示完整的嵌入張量,或者除了第一維度之外具有相同形狀的P個(gè)張量的列表导饲,表示經(jīng)分割的嵌入張量
        #      ids,                    一個(gè)類型為int32或int64的Tensor氯材,包含要在params中查找的id
        #      partition_strategy='mod',指定分區(qū)策略的字符串,如果len(params)> 1袋毙,則相關(guān)冗尤。當(dāng)前支持“div”和“mod”。 默認(rèn)為“mod”
        #      name=None,                      操作名稱(可選)
        #      validate_indices=True,          是否驗(yàn)證收集索引
        #      max_norm=None)                  如果不是None皆看,嵌入值將被l2歸一化為max_norm的值
import tensorflow as tf
import numpy as np
 
c = np.random.random([5,1])
# 隨機(jī)生成一個(gè)5*1的數(shù)組
b = tf.nn.embedding_lookup(c, [1, 3]) 
# 查找數(shù)組中的序號(hào)為1和3的
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print(sess.run(b))
    print(c)
tf.nn.embedding_lookup

tf.Graph() 和tf.Session()

tf.Graph()表示實(shí)例化一個(gè)用于tensorflow計(jì)算和表示用的數(shù)據(jù)流圖腰吟,不負(fù)責(zé)運(yùn)行計(jì)算徙瓶。通俗來講就是:在代碼中添加的操作(畫中的結(jié)點(diǎn))和數(shù)據(jù)(畫中的線條)都是畫在紙上的“畫”嫉称,而圖就是呈現(xiàn)這些畫的紙灵疮,你可以利用很多線程生成很多張圖始藕,但是默認(rèn)圖就只有一張。

tf.Session() 主要用于執(zhí)行網(wǎng)絡(luò)。所有關(guān)于神經(jīng)網(wǎng)絡(luò)的計(jì)算都在這里進(jìn)行剩胁,它執(zhí)行的依據(jù)是計(jì)算圖或者計(jì)算圖的一部分,同時(shí)晾腔,會(huì)話也會(huì)負(fù)責(zé)分配計(jì)算資源和變量存放啊犬,以及維護(hù)執(zhí)行過程中的變量。

# 默認(rèn)計(jì)算圖上的操作
a = tf.constant([1.0, 2.0])
b = tf.constant([2.0, 3.0])
result = a + b

# 定義兩個(gè)計(jì)算圖
g1 = tf.Graph()
g2 = tf.Graph()

# 在g1中定義張量和操作
with g1.as_default():
    a = tf.constant([1.0, 1.0])
    b = tf.constant([1.0, 1.0])
    result1 = a + b

# 在g2中定義張量和操作
with g2.as_default():
    a = tf.constant([2.0, 2.0])
    b = tf.constant([2.0, 2.0])
    result2 = a + b


# 創(chuàng)建會(huì)話
with tf.Session(graph=g1) as sess:
    out = sess.run(result1)
    print(out)

with tf.Session(graph=g2) as sess:
    out = sess.run(result2)
    print(out)

with tf.Session(graph=tf.get_default_graph()) as sess:
    out = sess.run(result)
    print(out)

out

tf.random_normal_initializer()

tf.random_normal_initializer(mean=0.0, stddev=1.0, seed=None, dtype=tf.float32)
#生成具有正態(tài)分布的張量的初始化器

tf.get_variable()

# tf.get_variable(name,shape峻贮,dtype应闯,initializer,trainable)
# name:名稱
# shape:數(shù)據(jù)形狀。
# dtype:數(shù)據(jù)類型船万。常用的tf.float32骨田,tf.float64等數(shù)值類型
# initializer:初始化值∈⒊牛可以使用各種初始化方法
# trainable:是否訓(xùn)練變量抵卫。bool類型:True訓(xùn)練胎撇,F(xiàn)alse不訓(xùn)練

a1 = tf.get_variable(name='a1', shape=[2,3], initializer=tf.random_normal_initializer(mean=0, stddev=1))
a2 = tf.get_variable(name='a2', shape=[1], initializer=tf.constant_initializer(1))
a3 = tf.get_variable(name='a3', shape=[2,3], initializer=tf.ones_initializer())
 
with tf.Session() as sess:
    sess.run(tf.initialize_all_variables())
    print (sess.run(a1))
    print (sess.run(a2))
    print (sess.run(a3))

#initializer 初始化方法
#tf.constant_initializer:常量初始化函數(shù)
#tf.random_normal_initializer:正態(tài)分布
#tf.truncated_normal_initializer:截取的正態(tài)分布
#tf.random_uniform_initializer:均勻分布
#tf.zeros_initializer:全部是0
#tf.ones_initializer:全是1
#tf.uniform_unit_scaling_initializer:滿足均勻分布殖氏,但不影響輸出數(shù)量級(jí)的隨機(jī)值

out

tf.reduce_sum()

張量沿著某一個(gè)維度的和

#tf.reduce_sum(
#    input_tensor,  待求和tensor
#    axis=None,     指定的維度雅采,如果不指定,則計(jì)算所有元素的和
#    keepdims=None,  是否保持原有張量的維度宝鼓,設(shè)置為True巴刻,結(jié)果保持輸入tensor的形狀,設(shè)置為False沥寥,結(jié)果會(huì)降低維度柠座,如果不傳入這個(gè)參數(shù),則系統(tǒng)默認(rèn)為False;
#    name=None,    操作的名稱;
#    keepdims=None)  是否保持原張量的維度

with tf.Session() as sess:
    sess.run(tf.initialize_all_variables())
    u=tf.reduce_sum(v,axis=1)
    print(sess.run(u))

out v
out u

其他類似函數(shù)
tf.reduce_mean():計(jì)算tensor指定軸方向上的所有元素的平均值;
tf.reduce_max():計(jì)算tensor指定軸方向上的各個(gè)元素的最大值狂塘;
tf.reduce_all():計(jì)算tensor指定軸方向上的各個(gè)元素的邏輯和(and運(yùn)算)荞胡;
tf.reduce_any():計(jì)算tensor指定軸方向上的各個(gè)元素的邏輯或(or運(yùn)算);

tf.add_n()

tf.add_n() 將list中的數(shù)值相加

import tensorflow as tf
x = tf.constant([2,4])
sess = tf.Session()
print(sess.run(tf.add_n([x, x])))
# [ 4 8 ]
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末廊营,一起剝皮案震驚了整個(gè)濱河市萝勤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌慎式,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件癣防,死亡現(xiàn)場離奇詭異掌眠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)级遭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門挫鸽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沧烈,“玉大人,你說我怎么就攤上這事锌雀∫改妫” “怎么了侈贷?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵俏蛮,是天一觀的道長。 經(jīng)常有香客問我搏屑,道長,這世上最難降的妖魔是什么亮垫? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任饮潦,我火速辦了婚禮携狭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己仅颇,他們只是感情好稻轨,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布殴俱。 她就那樣靜靜地躺著,像睡著了一般明场。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上苦锨,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天趴泌,我揣著相機(jī)與錄音嗜憔,去河邊找鬼。 笑死吉捶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的币励。 我是一名探鬼主播珊拼,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼杆麸,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了饼问?” 一聲冷哼從身側(cè)響起揭斧,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤峻堰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后盅视,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捐名,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年闹击,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了镶蹋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赏半,死狀恐怖贺归,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情断箫,我是刑警寧澤拂酣,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布仲义,位于F島的核電站婶熬,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏埃撵。R本人自食惡果不足惜赵颅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望暂刘。 院中可真熱鬧性含,春花似錦、人聲如沸鸳惯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芝发。三九已至,卻和暖如春苛谷,著一層夾襖步出監(jiān)牢的瞬間辅鲸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工腹殿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留独悴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓锣尉,卻偏偏與公主長得像刻炒,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子自沧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348