主要内容

padsequences

垫或截断数据序列长度相同

    描述

    例子

    XPad= padsequences (X,paddingDim)垫单元阵列中的序列X指定的尺寸paddingDim。函数将填充每个序列的末尾添加到最长的序列的大小相匹配X。填充序列连接和函数返回XPad作为一个数组。

    例子

    (XPad,面具)= padsequences (X,paddingDim)此外返回一个逻辑数组代表原始序列数据的位置XPad,。值的位置真正的1面具对应于原始序列数据的位置XPad;的值0对应的值。

    例子

    (___)= padsequences (X,paddingDim,名称,值)指定选项使用一个或多个名称参数除了以前的语法的输入和输出参数。例如,“PaddingValue”、“左派”添加填充原始序列的开始。

    例子

    全部折叠

    垫序列数据准备培训。

    加载序列数据。

    s = japaneseVowelsTrainData;

    预处理数据包含270观察每12序列特性。观察不同的长度7日和26日时间之间的步骤。

    垫0的数据相同的长度最长的序列。该函数适用于数据的右侧。指定包含时间步的维度作为填充维度。对于这个示例,尺寸是多少2

    sPad = padsequences (s, 2);

    检查填充序列的大小。

    大小(sPad)
    ans =1×3270年12日26日

    使用padsequences扩展或减少每个序列的固定长度的添加或删除数据序列的两端,这取决于原始序列的长度。

    加载序列数据。

    s = japaneseVowelsTrainData;

    预处理数据包含270观察每12序列特性。观察不同的长度7日和26日时间之间的步骤。

    处理数据,以便每个序列就是14的时间步骤。较短的序列,需要填充,需要更长时间序列截断。垫或在双方的数据截断。填充序列,应用对称的填充,这样的价值观是镜子反射的原始序列值。

    (sPad,面具)= padsequences (s, 2,“长度”14岁的“方向”,“两个”,“PaddingValue”,“对称”);

    比较一些填充序列与原序列。每个观察包含12特征提取单一特征比较。

    提取74的第一个特征观察。这比14时间较短的步骤序列。

    :{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×140.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时间步长。

    {28}(1:)
    ans =1×161.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×141.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 1 1 1 1 1 1 1 1 1

    函数中心序列和两端截断。面具显示所有数据在生成的序列是原始序列的一部分。

    使用padsequences函数与minibatchqueue准备和预处理序列数据准备培训使用自定义循环。

    人类活动的例子使用识别训练数据。传感器数据的数据包含六个时间序列来自智能手机戴在身体。每个序列有三个特性和不同长度。这三个特征对应于加速度计读数在三个不同的方向。

    加载训练数据。结合成一个单一的数据存储数据和标签。

    s =负载(“HumanActivityTrain.mat”);dsXTrain = arrayDatastore (s.XTrain,“OutputType”,“相同”);dsYTrain = arrayDatastore (s.YTrain,“OutputType”,“相同”);dsTrain =结合(dsXTrain dsYTrain);

    使用minibatchqueue处理mini-batches序列数据。定义一个自定义mini-batch预处理功能preprocessMiniBatch(在这个例子中定义)垫序列数据和标签,标签和一个炎热的编码序列。也返回的面具填充数据,指定三个输出变量minibatchqueue对象。

    miniBatchSize = 2;兆贝可= minibatchqueue (dsTrain 3“MiniBatchSize”miniBatchSize,“MiniBatchFcn”,@preprocessMiniBatch);

    检查mini-batches的大小。

    [X, Y,面具]=下一个(兆贝可);大小(X)
    ans =1×33 64480年2
    大小(面具)
    ans =1×33 64480年2

    每个mini-batch有两个观察。函数垫大小相同的序列作为mini-batch最长的序列。面具是相同的大小随着填充序列,并显示原始数据值填充的位置序列数据。

    大小(Y)
    ans =1×35 64480年2

    填充标签是一个炎热的编码成数字数据准备培训。

    函数(xPad yPad,面具)= preprocessMiniBatch (X, Y) [xPad、面具]= padsequences (X, 2);yPad = padsequences (Y, 2);yPad = onehotencode (yPad, 1);结束

    输入参数

    全部折叠

    序列垫,指定为一个细胞向量的数值或分类数组。

    数据类型:细胞

    维板输入序列数据,指定为一个正整数。

    例子:2

    数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

    名称-值参数

    指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

    R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

    例子:padsequences (X,“长度”,“最短”,“方向”、“两”)对序列两端,截断匹配输入序列的长度最短。

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

    • “最长”——垫每个输入序列相同的长度最长的输入序列。

    • “最短”——截断每个输入序列相同的长度最短的输入序列。

    • 正整数——垫或截断每个输入序列指定的长度。

    例子:padsequences (X,“长度”,“最短”)

    数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|字符|字符串

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

    • “对”——垫或截断在每个原始序列。

    • “左”——垫或截断在每个原始序列的开始。

    • “两个”——垫或截断在每个原始序列的开始和结束。一半所需的填充或截断应用于两端的序列。

    例子:padsequences (X,“方向”、“两”)

    数据类型:字符|字符串

    值用来垫输入,指定为以下之一:

    • “汽车”——确定增值自动根据输入的数据类型序列。数字序列填充0。分类序列填充<定义>

    • “对称”——垫每个序列的镜面反射本身。

    • 数字标量-垫每个序列指定的数值。

    • 绝对标量-垫每个序列指定的绝对价值。

    例子:padsequences (X,“PaddingValue”、“对称”)

    数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|分类

    国旗返回的数据作为一个统一的数组,指定为一个数字或逻辑1(真正的)或0()。当你设置值0,XPad作为一个细胞返回向量具有相同的大小和底层数据类型作为输入X

    例子:padsequences (X, UniformOutput, 0)

    数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

    输出参数

    全部折叠

    序列数据进行填充,作为数字数组,返回分类数组,或一个细胞向量的数值或分类数组。

    如果你设置UniformOutput名称选择真正的1,功能连接填充序列在过去的维度。最后的尺寸XPad有相同的大小在输入序列的数量吗XXPad是一个数组,N+1维度,N是序列数组的维度的数量吗XXPad具有相同的数据类型的数组输入X

    如果你设置UniformOutput名称选择0,该函数返回的序列作为一个单元向量具有相同的大小和底层数据类型作为输入X

    原始序列数据填充序列的位置,作为一个逻辑返回数组或作为细胞载体的逻辑数组。

    面具有相同的大小和数据类型XPad。的值1面具对应于原始序列值的位置XPad。的值0对应的值。

    使用面具排除填充值损失计算使用“面具”名称-值选项crossentropy函数。

    版本历史

    介绍了R2021a