栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pytorch中的Embedding

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pytorch中的Embedding

  • S1=“你是个栽娃”,S2=“我是中国人”
    L1=[“你”,“是”,“个”,“栽”,“娃”],L2=[“我”,“是”,“中”,“国”,“人”]
    L_total=[“你”,“是”,“个”,“栽”,“娃”,“我”,“中”,“国”,“人”]

  • 对L_total进行编号放到一个字典中
    dict={“你”:0,“是”:1,“个”:2,“栽”:3,“娃”:4,“我”:5,“中”:6,“国”:7,“人”:8}

  • 有这样一个新的句子
    "我是栽娃"对应的编号组成向量[4,1,2,3]
    (正常情况下会有个固定的向量长度,长度不够的会用"pad"填充,考虑到测试集中还会出现别的训练集没出现的字,还有有个”unk"来填充)
    这里暂且不考虑这些情况。

  • pytorch中的torch.nn有这样一个类Embedding
    embedding= nn.Embedding(dict_len,Embedding_dim)
    dict_len:代表的是你的训练集组成词典的总长度
    Embedding_dim:就是把[4,1,2,3]中的一个item化为Embedding_dim长度的向量

import torch.nn as nn
import torch
dict1={"你":0,"是":1,"个":2,"栽":3,"娃":4,"我":5,"中":6,"国":7,"人":8}
Embedding_dim=50 #看你自己想要多少维的
dict_len=len(dict1)
embedding= nn.Embedding(dict_len,Embedding_dim)
input=[[4,1,2,3]]
input = torch.LongTensor(input)
print(input.size())# (1,4)
x=embedding(input)
print(x.size())#(1,4,50)
  • 可以这样想有个长方形(1,4)想象成长方体的一个面,然后你把这个4向后扩充,变为一个(1,4,50)的长方体。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/348716.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号