tensorflow學(xué)習(xí)-embedding_lookup()用法

embedding_lookup( )的用法
關(guān)于tensorflow中embedding_lookup( )的用法,在Udacity的word2vec會(huì)涉及到,本文將通俗的進(jìn)行解釋

#!/usr/bin/env/python
# coding=utf-8
import tensorflow as tf
import numpy as np

input_ids = tf.placeholder(dtype=tf.int32, shape=[None])

embedding = tf.Variable(np.identity(5, dtype=np.int32))
input_embedding = tf.nn.embedding_lookup(embedding, input_ids)

sess = tf.InteractiveSession()
sess.run(tf.global_variables_initializer())
print(embedding.eval())
print(sess.run(input_embedding, feed_dict={input_ids:[1, 2, 3, 0, 3, 2, 1]}))

代碼中先使用palceholder定義了一個(gè)未知變量input_ids用于存儲(chǔ)索引,和一個(gè)已知變量embedding,是一個(gè)5*5的對(duì)角矩陣。
運(yùn)行結(jié)果為:

embedding = [[1 0 0 0 0]
             [0 1 0 0 0]
             [0 0 1 0 0]
             [0 0 0 1 0]
             [0 0 0 0 1]]
input_embedding = [[0 1 0 0 0]
                   [0 0 1 0 0]
                   [0 0 0 1 0]
                   [1 0 0 0 0]
                   [0 0 0 1 0]
                   [0 0 1 0 0]
                   [0 1 0 0 0]]

簡(jiǎn)單的講就是根據(jù)input_ids中的id,尋找embedding中的對(duì)應(yīng)元素。比如,input_ids=[1,3,5],則找出embedding中下標(biāo)為1,3,5的向量組成一個(gè)矩陣返回。
如果將input_ids改寫成下面的格式:

input_embedding = tf.nn.embedding_lookup(embedding, input_ids)
print(sess.run(input_embedding, feed_dict={input_ids:[[1, 2], [2, 1], [3, 3]]}))

輸出結(jié)果就會(huì)變成如下的格式:

[[[0 1 0 0 0]
  [0 0 1 0 0]]
 [[0 0 1 0 0]
  [0 1 0 0 0]]
 [[0 0 0 1 0]
  [0 0 0 1 0]]]

對(duì)比上下兩個(gè)結(jié)果不難發(fā)現(xiàn),相當(dāng)于在np.array中直接采用下標(biāo)數(shù)組獲取數(shù)據(jù)。需要注意的細(xì)節(jié)是返回的tensor的dtype和傳入的被查詢的tensor的dtype保持一致;和ids的dtype無關(guān)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. tf函數(shù) tensorflow 封裝的工具類函數(shù) | 操作組 | 操作 ||:-------------| ...
    南墻已破閱讀 5,631評(píng)論 0 5
  • TF API數(shù)學(xué)計(jì)算tf...... :math(1)剛開始先給一個(gè)運(yùn)行實(shí)例。tf是基于圖(Graph)的計(jì)算系統(tǒng)...
    MachineLP閱讀 4,066評(píng)論 0 1
  • 昨天還在低頭苦算二重積分,今天就在擠地鐵,發(fā)郵件。昨天周圍的人還是單純善良的同學(xué)朋友,你們之間真心總是能夠換取真心...
    馮枝繁閱讀 208評(píng)論 0 0
  • 最近,蘭子夫婦開發(fā)了他們的第二職業(yè)——偉大的保險(xiǎn)事業(yè)。 我不喜歡保險(xiǎn),特別討厭?;蛟S是因?yàn)橐淮斡悬c(diǎn)奇葩的購買留下陰...
    小鳥笑笑閱讀 560評(píng)論 0 3
  • 第一次接觸到“團(tuán)隊(duì)”這個(gè)詞,是我爸在跟我講他自己在做生意時(shí),帶部下出去參加“拓展訓(xùn)練”的故事。 拓展訓(xùn)練,是一項(xiàng)在...
    皮卡弟弟閱讀 512評(píng)論 0 1

友情鏈接更多精彩內(nèi)容