主要内容

拼图序列

将序列数据填充或截断为相同长度

    描述

    实例

    XPAD.= PAD序列(X,paddingdim)填充单元阵列中的序列X沿指定的尺寸标注paddingdim.该功能在每个序列结束时添加填充以匹配最长序列的大小X.填充序列串联,函数返回XPAD.作为一个数组。

    实例

    [XPAD.,面具]=焊盘序列(X,paddingdim)另外,还返回一个逻辑数组,表示原始序列数据在XPAD., . 价值取向真的或者1.面具对应于原始序列数据的位置XPAD.;价值错误的或者0对应于填充值。

    实例

    [___]=焊盘序列(X,paddingdim,名称,价值)指定使用一个或多个名称值参数以及先前语法中的输入和输出参数的选项。例如“PaddingValue”,“left”将填充添加到原始序列的开头。

    例子

    全部收缩

    Pad序列数据已准备好进行培训。

    加载序列数据。

    s =日本韦威尔斯特拉特塔

    预处理数据包含270个观察,每个观察有12个序列功能。观察的长度在7到26个时间步长之间变化。

    用零填充数据,使其长度与最长序列的长度相同。该函数应用于数据的右侧。指定包含时间步长的维度作为填充维度。在本例中,维度为2..

    spad = pad sequences(s,2);

    检查填充序列的大小。

    尺寸(spad)
    ans =.1×312 26 270.

    拼图序列根据原始序列的长度在序列的两端添加或移除数据,将每个序列延伸或切割到固定长度。

    加载序列数据。

    s =日本韦威尔斯特拉特塔

    预处理数据包含270个观察,每个观察有12个序列功能。观察的长度在7到26个时间步长之间变化。

    处理数据,使每个序列正好为14个时间步。对于较短的序列,需要填充,而较长的序列需要截断。在数据的两侧填充或截断。对于填充的序列,应用对称填充,以便填充的值是原始序列值的镜像反射。

    [sPad,mask]=焊盘序列(s,2,'长度',14,'方向','两个都',“PaddingValue”,'对称');

    将一些填充序列与原始序列进行比较。每次观察都包含12个功能,因此提取单个功能以比较。

    提取第74个观察的第一个特征。该序列短于14个时间步长。

    s{74}(1,:)
    ans =.1×90.6691 0.5291 0.3820 0.3107 0.2546 0.1942 0.0931 -0.0179 -0.1081
    Spad(1,:,74)
    ans =.1×14.0.5291 0.6691 0.6691 0.5291 0.3820 0.3107 0.2546 0.1942 0.0931 -0.0179 -0.1081 -0.1081 -0.0179 0.0931
    面具(1,:,74)
    ans =.1×14逻辑阵列0 0 1 1 1 1 1 1 1 1 1 0 0 0

    该函数通过反映序列末端的值将序列和焊盘置于两端的中心。掩码显示原始序列值的位置。

    提取第28次观测的第一个特征。此序列长于14个时间步。

    s {28}(1,:)
    ans =.1×16.1.1178 1.0772 1.2365 1.4858 1.6191 1.4893 1.2791 1.4692 1.5592 1.5112 1.5144 1.5871 1.4848 1.2978 1.1336 1.0280
    sPad(1,:,28)
    ans =.1×14.1.0772 1.2365 1.4858 1.6191 1.4893 1.2791 1.4692 1.5592 1.5112 1.5144 1.5871 1.4848 1.2978 1.1336
    面具(1,:,28)
    ans =.1×14逻辑阵列1 1 1 1 1 11 1 1 1 1 1 1 1 1

    函数将序列居中并在两端截断。掩码显示结果序列中的所有数据都是原始序列的一部分。

    使用拼图序列配合小公子准备和预处理序列数据准备使用自定义训练循环进行培训。

    该示例使用人类活动识别培训数据。数据包含从身体上佩戴的智能手机获得的六个时间序列。每个序列具有三个特征,长度变化。三个特征对应于三个不同方向的加速度计读数。

    加载培训数据。将数据和标签组合到单个数据存储中。

    s = load(“人类触发器”。);dsxtrain = ArrayDataStore(S.Xtrain,“输出类型”,'相同的');dstrain = arraydataStore(s.ytrain,“输出类型”,'相同的');dsTrain=联合收割机(dsXTrain,dsYTrain);

    小公子处理序列数据的小批量。定义自定义小批量预处理函数预处理小批量(在本例末尾定义)填充序列数据和标签,并对标签序列进行热编码。若要返回填充数据的掩码,请为小公子目的。

    minibatchsize = 2;MBQ = Minibatchqueue(Dstrain,3,...“MiniBatchSize”,小匹马,...“MiniBatchFcn”小批量);

    检查迷你批次的大小。

    [x,y,mask] =下一个(MBQ);尺寸(x)
    ans =.1×33 64480 2
    尺寸(面具)
    ans =.1×33 64480 2

    每个小批量有两个观察值。函数将序列填充到与小批量中最长序列相同的大小。掩码与填充序列的大小相同,并显示原始数据值在填充序列数据中的位置。

    尺寸(Y)
    ans =.1×35 64480 2

    填充标签是一个热编码为数字数据,准备训练。

    功能[xpad,ypad,mask] = preprocessminibatch(x,y)[xpad,mask] = pad sequences(x,2);YPAD = PAD序列(Y,2);YPAD = OneHotencode(YPAD,1);结尾

    输入参数

    全部收缩

    填充序列,指定为数字或分类阵列的单元格向量。

    数据类型:细胞

    沿着填充输入序列数据的维度,指定为正整数。

    例子:2.

    数据类型:仅有一个的|双倍的|int8|int16|INT32.|INT64.|uint8|uint16|uint32|uint64

    名称值对参数

    指定可选的逗号分离对名称,价值论点。名称是参数名称和价值是相应的价值。名称必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen.

    例子:焊盘序列(X、‘长度’、‘最短’、‘方向’、‘两者’)截断每一端的序列,以匹配最短输入序列的长度。

    填充序列的长度,指定为以下之一:

    • '最长'-将每个输入序列填充到与最长输入序列相同的长度。

    • “最短”- 将每个输入序列截断到与最短输入序列相同的长度。

    • 正整数 - 键盘或截断每个输入序列到指定的长度。

    例子:焊盘序列(X,'Length','shortest')

    数据类型:仅有一个的|双倍的|int8|int16|INT32.|INT64.|uint8|uint16|uint32|uint64|char|一串

    填充或截断的方向,指定为以下之一:

    • '对'- 在每个原始序列的末尾垫或截断。

    • '剩下'-在每个原始序列的开始处填充或截断。

    • '两个都'- 在每个原始序列的开头和结尾处划接或截断。将所需填充或截断的一半应用于序列的每一端。

    例子:PADSEQUENCES(x,'方向','两个')

    数据类型:char|一串

    用于填充输入的值,指定为以下值之一:

    • “自动”- 根据输入序列的数据类型自动确定[自动添加值。数字序列填充0.分类序列用填充<未定义>.

    • '对称'- 用镜面反射填充每个序列。

    • 数值标量-用指定的数值填充每个序列。

    • Categorical scalar—用指定的分类值填充每个序列。

    例子:PADSEQUENCES(x,'paddingsvalue','symmetric')

    数据类型:仅有一个的|双倍的|int8|int16|INT32.|INT64.|uint8|uint16|uint32|uint64|分类

    将填充数据作为统一数组返回的标志,指定为数字或逻辑数组1.(真的) 或者0(错误的)。当您设置值时0,XPAD.作为与输入大小和基础数据类型相同的单元格向量返回X.

    例子:焊盘序列(X,'UniformOutput',0)

    数据类型:仅有一个的|双倍的|int8|int16|INT32.|INT64.|uint8|uint16|uint32|uint64|必然的

    输出参数

    全部收缩

    填充序列数据,返回为数字阵列,分类阵列或数字或分类阵列的单元格向量。

    如果你设定统一输出名称值选项真的或者1.,该功能将填充序列连接到最后一维。最后的维度XPAD.具有与输入中序列数相同的大小X.XPAD.是一个阵列N+1.尺寸,在哪里N是序列阵列的尺寸的数量X.XPAD.具有与输入中的数组相同的数据类型X.

    如果你设定统一输出名称值选项错误的或者0,该函数将填充序列返回为具有与输入相同大小和底层数据类型的单元格向量X.

    原始序列数据在填充序列中的位置,返回为逻辑阵列或作为逻辑阵列的单元格向量。

    面具具有与相同的大小和数据类型XPAD..价值观1.面具对应于原始序列值的位置XPAD..价值观0对应于填充值。

    面具从损耗计算中排除填充值的填充值“面具”名称 - 值选项基于分子功能。

    在R2021A介绍