主要内容

嵌入

嵌入离散数据

    描述

    嵌入操作将数值指标转换为数值向量,其中指标对应于离散数据。使用嵌入将离散数据(如类别值或单词)映射到数值向量。

    请注意

    这个函数将嵌入操作应用于dlarray数据。如果您想在对象中应用嵌入操作layerGraph对象或数组,使用一个wordEmbeddingLayer(文本分析工具箱)对象。

    例子

    Y=嵌入(X权重返回嵌入的向量权重格式中的数值索引对应dlarray对象X

    Y=嵌入(X权重“DataFormat”,FMT还指定尺寸格式FMTX不是格式化的dlarray对象。输出Y是一个非格式化dlarray具有相同的尺寸顺序X

    例子

    全部折叠

    嵌入一个小批量的分类特性。

    创建一个包含5个带值的观察结果的分类特征数组“男性”“女性”

    直言([X =“男性”“女性”“男性”“女性”“女性”]) ';

    初始化嵌入权重。指定嵌入维度为10,以及与输入数据的类别数量加1对应的词汇表。

    embeddingDimension = 10;vocabularySize =元素个数(类别(X));重量=兰德(embeddingDimension vocabularySize + 1);

    要嵌入分类数据,首先要将其转换为数字索引的小批处理。

    X =双(X)
    X =5×12 1 2 1 1

    为格式化dlarray输入时,嵌入函数展开为一个单例“C”(通道)尺寸为1。创建一个格式化的dlarray对象,该对象包含数据。要指定行与观察值对应,请指定格式“公元前”(批处理、通道)。

    dlX = dlarray (X,“公元前”
    dlX = 1(C) x 5(B) dlarray 2 1 2 1 1

    方法嵌入数值索引嵌入函数。的嵌入函数展开为“C”维度。

    海底=嵌入(dlX、重量)
    dlY = 10(C) x 5(B) dlarray 0.1576 0.8147 0.1576 0.8147 0.8147 0.9706 0.9058 0.9706 0.9058 0.9072 0.1270 0.9058 0.9572 0.1270 0.9058 0.9572 0.1270 0.9058 0.9134 0.4854 0.9134 0.4854 0.9134 0.6324 0.8003 0.6324 0.8003 0.6324 0.8003 0.6324 0.3324 0.6324 0.1419 0.0975 0.1419 0.0975 0.0975 0.0975 0.4218 0.2785 0.2785 0.9157 0.5469 0.9157 0.5469 0.5475 0.9522 0.9575 0.9575 0.9595 0.9649 0.9649

    在本例中,输出是embeddingDimension——- - - - - -N矩阵的格式“CB”(通道、批),N是观察数。每一列都包含嵌入向量。

    嵌入一个小批量文本数据。

    textData = [“物品偶尔会卡在扫描仪线轴上。”“巨大的咔啦咔啦声和砰砰声来自装配活塞。”];

    创建一个标记文档数组。

    文件= tokenizedDocument (textData);

    若要将文本数据编码为数字索引序列,请创建wordEncoding对象。

    内附= wordEncoding(文件);

    初始化嵌入权重。指定嵌入维度为100,并指定词汇量大小与单词编码中对应的词汇量大小加上1一致。

    embeddingDimension = 100;vocabularySize = enc.NumWords;重量=兰德(embeddingDimension vocabularySize + 1);

    方法将标记文档转换为字向量序列doc2sequence函数。的doc2sequence函数在默认情况下丢弃输入数据中的词汇表外标记。要将词汇表外的标记映射到嵌入权重的最后一个向量,请设置“UnknownWord”选项“南”.的doc2sequence函数默认情况下,对带0的输入序列进行左填充,使其具有相同的长度

    序列= doc2sequence (enc、文档“UnknownWord”“南”
    序列=2×1单元阵列{[0 12 3 4 5 6 7 8 9 10]} {[11 12 13 14 15 2 16 17 18 19 10]}

    输出是一个单元格数组,其中每个元素对应一个观察结果。每个元素都是一个行向量,其中的元素表示对应观察中的各个标记,包括填充值。

    通过垂直连接行,将单元格数组转换为数字数组。

    X =猫(1、序列{}):
    X =2×110 12 3 4 5 6 7 8 9 10 11 12 13 14 15 2 16 17 18 19 10

    将数值索引转换为dlarray.因为行和列X分别对应观测值和时间步长,指定格式英国电信的

    dlX = dlarray (X,英国电信的
    dlX = 2(B) x 11(T) dlarray 0 12 3 4 5 6 7 8 9 10 11 12 13 14 15 2 16 17 18 19 10

    方法嵌入数值索引嵌入函数。的嵌入函数将填充标记(索引为0的标记)和任何其他词汇表外标记映射到相同的词汇表外嵌入向量。

    海底=嵌入(dlX、重量);

    在本例中,输出是embeddingDimension——- - - - - -N——- - - - - -年代矩阵的格式“认知行为治疗”,在那里N而且年代分别是观测次数和时间步数。向量海底(:n t)对应于时间步长的嵌入向量t的观察n

    输入参数

    全部折叠

    输入数据,指定为格式化的dlarray,一个非格式化dlarray,或数字数组。的元素X必须是非负整数还是

    函数返回嵌入的向量权重中的数值指标对应X.如果有任何值X为零,,或大于词汇表大小,则函数返回该元素的词汇表外向量。

    X不是格式化的dlarray对象指定尺寸标签格式时,必须使用“DataFormat”选择。同样,如果X是数字数组吗权重必须是一个dlarray对象。

    控件指定的输入数据的单例通道维度“C”尺寸标签。如果数据没有指定的通道维度,则该函数假定为未指定的单例通道维度。

    嵌入权重,指定为格式化的dlarray,一个非格式化dlarray,或数字数组。

    矩阵权重指定嵌入的维度、词汇表大小和嵌入向量。

    嵌入维数是指构件的个数K嵌入。也就是说,嵌入将数值索引映射到长度向量K.词汇表大小是离散元素的数量V在嵌入。也就是说,嵌入支持的基础数据的离散元素的数量。嵌入将词汇表外的索引映射到相同的词汇表外嵌入向量。

    如果权重是一个格式化的dlarray对象,则它必须具有format“铜”加州大学的.与标签对应的尺寸“C”而且“U”一定的大小K而且V+ 1,分别K而且V分别表示嵌入维数和词汇量。额外的向量对应词汇表之外的嵌入向量。

    如果权重不是格式化的dlarray对象,然后权重必须是一个K————(V+ 1)矩阵,K而且V分别表示嵌入维数和词汇量大小。

    函数返回嵌入的向量权重中的数值指标对应X.如果有任何值X为零,,或大于词汇表大小,则函数返回该元素的词汇表外向量。

    未格式化输入数据的维度顺序,指定为逗号分隔的对,由“DataFormat”和字符数组或字符串FMT它为数据的每个维度提供一个标签。每个字符在FMT必须是以下之一:

    • “年代”——空间

    • “C”——频道

    • “B”-批处理(例如,样品和观察)

    • “T”-时间(例如,序列)

    • “U”——未指明的

    您可以指定多个标记的维度“年代”“U”.你可以使用标签“C”“B”,“T”最多一次。

    您必须指定FMT, DataFormat”当输入数据没有格式化时dlarray

    例子:“DataFormat”、“SSCB”

    数据类型:字符|字符串

    输出参数

    全部折叠

    嵌入向量,作为a返回dlarray对象。输出Y是否与输入具有相同的基础数据类型X

    函数返回嵌入的向量权重中的数值指标对应X.如果有任何值X为零,,或大于词汇表大小,则函数返回该元素的词汇表外向量。

    嵌入向量有K元素,K是嵌入维数。尺寸的大小Y根据输入数据:

    • 如果X是一个格式化的dlarray与一个“C”维度标签,然后嵌入操作展开到该维度。也就是说,输出具有与输入相同的维度格式“C”维度有大小K,其他维度与输入的相应维度具有相同的大小。

    • 如果X是一个格式化的dlarray没有一个“C”维度。然后,该操作假定为单例通道维度。输出有一个“C”尺寸和所有其他尺寸都有相同的尺寸和尺寸标签。也就是说,输出与输入具有相同的格式,并且也是a“C”维度,“C”维度有大小K,其他维度与输入的相应维度具有相同的大小。

    • 如果X不是格式化的dlarray对象和“DataFormat”包含一个“C”维度,然后嵌入操作展开到该维度。也就是说,输出的维数作为输入,维数对应于“C”维度有大小K,其他维度与输入的相应维度具有相同的大小。

    • 如果X不是格式化的dlarray对象和“DataFormat”不包含‘C’维度,则嵌入操作在开始时插入一个新维度。也就是说,输出还有一个维度作为输入,第一个维度对应于“C”维度有大小K,其他维度与输入的相应维度具有相同的大小。

    扩展功能

    版本历史

    介绍了R2020b

    Baidu
    map