91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在pytorch中使用word2vec訓練好的詞向量

發布時間:2021-08-17 11:35:23 來源:億速云 閱讀:822 作者:小新 欄目:開發技術

這篇文章主要介紹了如何在pytorch中使用word2vec訓練好的詞向量,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

示例

torch.nn.Embedding()

這個方法是在pytorch中將詞向量和詞對應起來的一個方法. 一般情況下,如果我們直接使用下面的這種:

self.embedding = torch.nn.Embedding(num_embeddings=vocab_size, embedding_dim=embeding_dim)
num_embeddings=vocab_size  表示詞匯量的大小
embedding_dim=embeding_dim 表示詞向量的維度

這種情況下, 因為沒有指定訓練好的詞向量, 所以embedding會幫咱們生成一個隨機的詞向量(但是在我剛剛測試的一個情感二分類問題中, 我發現好像用不用預訓練的詞向量, 結果差不多, 不過不排除是因為當時使用的模型比較簡單, 導致一些特征根本就沒提取出來).

如果我想使用word2vec預訓練好的詞向量該怎么做呢?

其實很簡單,pytorch已經給我們提供好了接口

self.embedding.weight.data.copy_(torch.from_numpy(embeding_vector))
self.embedding.weight.requires_grad = False

上面兩句代碼的意思, 第一句就是導入詞向量, 第二句表示的是在反向傳播的時候, 不要對這些詞向量進行求導更新. 我還看到有人會在優化器那里使用這樣的代碼:

# emotion_net是我定義的模型
optimizer = torch.optim.Adam(filter(lambda p: p.requires_grad, emotion_net.parameters()), lr=1e-3, betas=(0.9, 0.99))

大概意思也是為了保證詞向量不會被反向傳播而更新, 具體有沒有用我就不清楚了.

其實我感覺大家比較在意的其實應該是embeding_vector的形式, 下面我就介紹一下embeding_vector的形式

為了講述方便, 這里定義出下面幾個矩陣

embeding_vector:表示詞向量,每行是一個詞的詞向量,有多少行就說明有多少單詞

word_list:表示單詞列表,里面就是單詞

word_to_index:這個矩陣將word_list中的單詞和embeding_vector中的位置對應起來

其實embeding_vector是一個numpy矩陣, 當然你看到了, 實際輸入到pytorch的時候, 是需要轉換成tensor類型的. 這個矩陣是什么樣子的呢? 其中這個矩陣是 [vocab_size×embeding_dim] [vocab\_size \times embeding\_dim][vocab_size×embeding_dim] 的形式. 其中一共包含vocab_size vocab\_sizevocab_size 個單詞, 每個單詞的維度是 embed_dim embed\_dimembed_dim, 我們把這樣一個矩陣輸入就行了.

之后, 我們要做的其實就是將 word_to_index word\_to\_indexword_to_index 這個矩陣搞出來, 這里的單詞轉下標的矩陣, 就是聯系 embeding_vector embeding\_vectorembeding_vector 和 word_list word\_listword_list 這兩個矩陣的中間者. 我們在輸入到torch.nn.Embedding中之前, 需要先通過 word_to_index word\_to\_indexword_to_index 將單詞轉換成 embeding_vector embeding\_vectorembeding_vector 的下標就可以了.

感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何在pytorch中使用word2vec訓練好的詞向量”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

张家港市| 河西区| 阿城市| 沂水县| 泰顺县| 清水县| 丹江口市| 上犹县| 陕西省| 石城县| 宜宾市| 太仆寺旗| 湄潭县| 贵定县| 昌都县| 土默特左旗| 长宁县| 迁西县| 鞍山市| 赤峰市| 二连浩特市| 绩溪县| 华安县| 南宫市| 合作市| 拉萨市| 泗阳县| 金山区| 观塘区| 遵义市| 三明市| 达孜县| 都昌县| 白水县| 无为县| 裕民县| 宁波市| 临高县| 谢通门县| 南京市| 麻栗坡县|