Transformer简明教程 P8 定义数据

阅读: 评论:0

Transformer简明教程 P8 定义数据

Transformer简明教程 P8 定义数据


字典就是拿一个数字代表一个词

代码:

# 定义字典
zidian_x = '<SOS>,<EOS>,<PAD>,0,1,2,3,4,5,6,7,8,9,q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m'
zidian_x = {word: i for i, word in enumerate(zidian_x.split(','))}
# print(zidian_x)zidian_xr = [k for k, v in zidian_x.items()]zidian_y = {k.upper(): v for k, v in zidian_x.items()}zidian_yr = [k for k, v in zidian_y.items()]import randomimport numpy as np
import torchdef get_data():# 定义词集合words = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'q', 'w', 'e', 'r','t', 'y', 'u', 'i', 'o', 'p', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k','l', 'z', 'x', 'c', 'v', 'b', 'n', 'm']# 定义每个词被选中的概率# m 概率最大p = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26])p = p / p.sum()# 随机选n个词# 随机数定义这个句子有多长(30-48之间)n = random.randint(30, 48)x = np.random.choice(words, size=n, replace=True, p=p)# 采样的结果就是xx = x.tolist()# y是对x的变换得到的# 字母大写,数字取10以内的互补数# 映射 求出ydef f(i):i = i.upper()if not i.isdigit():return ii = 9 - int(i)return str(i)# 双写 y的首字母 因为y 比 x 多一个y = [f(i) for i in x]y = y + [y[-1]]# 逆序y = y[::-1]# 加上首尾符号x = ['<SOS>'] + x + ['<EOS>']y = ['<SOS>'] + y + ['<EOS>']# 补pad到固定长度x = x + ['<PAD>'] * 50y = y + ['<PAD>'] * 51x = x[:50]y = y[:51]# 编码成数据x = [zidian_x[i] for i in x]y = [zidian_y[i] for i in y]# 转tensorx = torch.LongTensor(x)y = torch.LongTensor(y)return x, y# 定义数据集
class Dataset(torch.utils.data.Dataset):def __init__(self):super(Dataset, self).__init__()def __len__(self):return 100000def __getitem__(self, i):return get_data()# 数据加载器
# 每调用一次数据加载器得到的一批数据会有8个x和8个对应的y
loader = torch.utils.data.DataLoader(dataset=Dataset(),batch_size=8,drop_last=True,shuffle=True,collate_fn=None)

本文发布于:2024-01-28 20:15:56,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170644415810002.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:简明   定义   教程   数据   Transformer
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23