transformer 最简单学习3, 训练文本数据输入的形式

1、输入数据中,源数据和目标数据的定义

cpp 复制代码
def get_batch(source,i):
    '''
    
    用于获取每个批数据合理大小的源数据和目标数据
    参数source 是通过batchfy   得到的划分batch个 ,的所有数据,并且转置列表示
    i第几个batch
    '''
    bptt = 15  #超参数,一次输入多少个batch 数据,现在数据矩阵,一行表示一个batch, 一共有n个行,  

    # len(source) - 1 - i  从大往小变化,知道小到bptt,所以seq_len,大部分时间都是bptt 个=15个,最后几个训练才越来越少
    seq_len = min(bptt, len(source) -1-i)  #一共是列的元素长度,30个,  行是10个,一共三个batch ,
    # 这是转置过的,现在,就变成30个batch,每个batch 长度是3
    
    # 行数错一位,目标数据是原数据向下一位,
    data = source[i:i+seq_len]
    # 这里最后会越界,使用view(-1) 保证形状正常
    target = source[i+1:i+1+seq_len]
    return data,target #

文本数据,是每个单词对应的索引,需要对数据进行切分成整块的batch, (n行,batch列), 变成竖着的,

(batch行,n列)

然后,横着一个一个 切分成一个个batch数据,下移一个索引获取目标数据,

(n行,batch列)

cpp 复制代码
【 
     [A,B,C,D,E,F]
     [G,H,I,J,K,L]
     [M,N,O,P,Q,R],
     ......
 】

(batch行,n列)

横着看,每一位 AGMS 对应 BHNT, AB, GH, MN, ST, 是相邻的两个字

相关推荐
The_Uniform_C@t222 分钟前
PWN | 对CTF WIKI的复现+再学习 (第八期)
网络·学习·网络安全·二进制
前路不黑暗@2 小时前
Java项目:Java脚手架项目的登录认证服务(十三)
java·spring boot·笔记·学习·spring·spring cloud·maven
yunhuibin2 小时前
AlexNet网络学习
人工智能·python·深度学习·神经网络
算法黑哥2 小时前
Sharpness-Aware Minimization (SAM,锐度感知最小化)是让损失曲面变平坦,还是引导参数至平坦区域
深度学习·神经网络·机器学习
肾透侧视攻城狮2 小时前
《从fit()到分布式训练:深度解锁TensorFlow模型训练全栈技能》
人工智能·深度学习·tensorflow 模型训练·模型训练中的fit方法·自定义训练循环·回调函数使用·混合精度/分布式训练
索木木3 小时前
大模型训练CP切分(与TP、SP结合)
人工智能·深度学习·机器学习·大模型·训练·cp·切分
前路不黑暗@3 小时前
Java项目:Java脚手架项目的 C 端用户服务(十五)
java·开发语言·spring boot·学习·spring cloud·maven·mybatis
Hello_Embed3 小时前
Modbus 传感器开发:STM32F030 libmodbus 移植
笔记·stm32·学习·freertos·modbus
知识分享小能手4 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019 视图操作 — 语法知识点及使用方法详解(16)
sql·学习·sqlserver
量子-Alex4 小时前
【大模型思维链】COT、COT-SC、TOT和RAP四篇经典工作对比分析
人工智能·深度学习·机器学习