主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을영문으로보려면여기를클릭하십시오。

sequenceInputlayer.

시퀀스입력계층

설명

시퀀스입력계층은신경망에시퀀스데이터를입력합니다。

생성

설명

= sequenceInputLayer (inputSize는는시퀀스입력계층을만들고InputSize속성을설정합니다。

예제

= sequenceInputLayer (inputSize,名称,值는이름——값쌍을사용하여선택사항인归一化,的意思是,姓名속성을설정합니다。여러개의이름——값쌍을지정할수있습니다。각속성이름을작은따옴표로묶습니다。

속성

모두확장

영상입력

입력값의크기로,양의정수또는양의정수로구성된벡터로지정됩니다。

  • 벡터시퀀스입력값에대해,InputSize는특징개수에대응되는스칼라입니다。

  • 2차원차원영상시퀀스입력입력값에,InputSize는요소를3개가진벡터[w c h]입니다。여기서h는영상높이고,w는영상너비이고,c는영상의채널개수입니다。

  • 3차원영상시퀀스시퀀스입력값값에,InputSize는요소를4개가진벡터[H W D C]입니다。여기서h는영상높이고,w는영상너비이고,d는영상깊이이고,c는영상의채널개수입니다。

예:100.

데이터가입력계층을통과하여순방향으로전파될때마다적용할데이터정규화,로다음중하나로지정됩니다。

  • 'Zerocenter'- - - - - -的意思是으로지정된평균값을뺍니다。

  • “zscore”- - - - - -的意思是으로지정된평균값을빼고StandardDeviation으로나눕니다。

  • “rescale-symmetric”- - - - - -으로지정된최솟값과马克斯로지정된최댓값을사용하여입력값이[1]범위내에오도록다시스케일링합니다。

  • 'Rescale-Zero-One'- - - - - -으로지정된최솟값과马克斯로지정된최댓값을사용하여입력값이[0,1]범위내에오도록다시스케일링합니다。

  • “没有”- 입력데이터를정규화하지않습니다않습니다。

  • 함수핸들-지정된함수를사용하여데이터를정규화합니다。함수는Y = func (X)형식이되어야합니다。여기서X는입력데이터이고출력값Y는정규화된데이터입니다。

소프트웨어는기본적으로훈련시점에자동으로정규화통계량을계산합니다。훈련중에시간을절약하려면정규화에필요한통계량을지정하고培训选项'resetInputnormalization'로설정하십시오。

입력데이지가채우기를포함할경우계층입력입력이터데를정규정규화할채우기값을무시무시할때채우기값을무시무시무시채우기값을을무시무시

정규화차원으로,다음중하나로지정。

  • “汽车”——훈련옵션이이고정규화통계량중하나(的意思是,StandardDeviation,또는马克斯)그렇지않은경우,훈련시점에통계량을다시계산하고채널별정규화를적용합니다。

  • “通道”——채널별정규화。

  • “元素”——요소별정규화。

  • “所有”- 스칼라통계량을사용하여모든값을정규화。

0을중심으로하는정규화및z -점수정규화에서의평균값으로,숫자형배열또는빈값으로지정됩니다。

  • 벡터시퀀스입력값에대해,的意思是은은채널당평균으로구성된InputSize×1¼,숫자형스칼라또는[]이어야합니다。

  • 2차원차원영상시퀀스입력입력값에,的意思是InputSize와크기가같은숫자형배열,채널당평균으로구성된1×1×InputSize (3)배열,숫자형스칼라또는[]이어야합니다。

  • 3차원영상시퀀스시퀀스입력값값에,的意思是InputSize와크기가같은숫자형배열,채널당평균으로구성된1×1×1×InputSize (4)배열,숫자형스칼라또는[]이어야합니다。

的意思是속성을지정한경우归一化'Zerocenter'또는“zscore”여야합니다。的意思是[]인경우소프트웨어는훈련시점에평균값을계산합니다。

이속성은훈련없이신경망을만들때(예를들어,assembleNetwork를사용하여하여신경망신경망을조합할때때때수수수할할수

데이터형:单身的||INT8.|int16|int32|int64|uint8.|uint16|UINT32|UINT64

z점수정규화에사용되는표준편차로,숫자형배열,숫자형스칼라또는빈값으로지정됩니다。

  • 벡터시퀀스입력값에대해,StandardDeviation은채널당표준편차로구성된InputSize×1¼,숫자형스칼라또는[]이어야합니다。

  • 2차원차원영상시퀀스입력입력값에,StandardDeviationInputSize와크기가같은같은배열,채널당표준편차로구성된1×1×InputSize (3)배열,숫자형스칼라또는[]이어야합니다。

  • 3차원영상시퀀스시퀀스입력값값에,StandardDeviationInputSize와크기가같은숫자형배열,채널당표준편차로구성된1×1×1×InputSize (4)배열또는숫자형스칼라여야합니다。

StandardDeviation속성을지정한경우归一化“zscore”여야합니다。StandardDeviation[]인경우소프트웨어는훈련시점에표준편차를계산합니다。

이속성은훈련없이신경망을만들때(예를들어,assembleNetwork를사용하여하여신경망신경망을조합할때때때수수수할할수

데이터형:单身的||INT8.|int16|int32|int64|uint8.|uint16|UINT32|UINT64

다시스케일링하기위한최솟값으로,숫자형배열또는빈값으로지정됩니다。

  • 벡터시퀀스입력값에대해,은은채널당평균으로구성된InputSize×1벡터또는숫자형스칼라여야합니다。

  • 2차원차원영상시퀀스입력입력값에,InputSize와크기가같은같은배열,채널당채널당국소최솟값으로구성구성1×1×InputSize (3)배열또는숫자형스칼라여야합니다。

  • 3차원영상시퀀스시퀀스입력값값에,InputSize와크기가같은숫자형배열,채널당국소최솟값으로구성된1×1×1×InputSize (4)배열또는숫자형스칼라여야합니다。

속성을지정한경우归一化“rescale-symmetric”또는'Rescale-Zero-One'이어야합니다。[]인경우소프트웨어는훈련시점에국소최솟값을계산합니다。

이속성은훈련없이신경망을만들때(예를들어,assembleNetwork를사용하여하여신경망신경망을조합할때때때수수수할할수

데이터형:单身的||INT8.|int16|int32|int64|uint8.|uint16|UINT32|UINT64

다시스케일링하기위한최댓값으로,숫자형배열또는빈값으로지정됩니다。

  • 벡터시퀀스입력값에대해,马克斯는채널당평균으로구성된InputSize×1벡터또는숫자형스칼라여야합니다。

  • 2차원차원영상시퀀스입력입력값에,马克斯InputSize와크기가같은숫자형배열,채널당국소최댓값으로구성된1×1×InputSize (3)배열,숫자형스칼라또는[]이어야합니다。

  • 3차원영상시퀀스시퀀스입력값값에,马克斯InputSize와크기가같은숫자형배열,채널당국소최댓값으로구성된1×1×1×InputSize (4)배열,숫자형스칼라또는[]이어야합니다。

马克斯속성을지정한경우归一化“rescale-symmetric”또는'Rescale-Zero-One'이어야합니다。马克斯[]인경우소프트웨어는훈련시점에국소최댓값을계산합니다。

이속성은훈련없이신경망을만들때(예를들어,assembleNetwork를사용하여하여신경망신경망을조합할때때때수수수할할수

데이터형:单身的||INT8.|int16|int32|int64|uint8.|uint16|UINT32|UINT64

계층

계층이름으로,문자형벡터또는字符串형스칼라로지정됩니다。계층그래프에계층을포함하려면비어있지않은고유한계층이름을지정해야합니다。이계층을사용하여시리즈신경망을훈련시킬때姓名''로설정하면,소프트웨어가훈련시점에해당계층에자동으로이름을할당합니다。

데이터형:字符|细绳

계층의입력값개수。이계층에는입력값이없습니다。

데이터형:

계층의입력값이름。이계층에는입력값이없습니다。

데이터형:细胞

계층의출력값개수。이계층은단일출력값만가집니다。

데이터형:

계층의출력값이름。이계층은단일출력값만가집니다。

데이터형:细胞

예제

모두축소

이름이“seq1”이고입력크기가12인시퀀스입력계층을만듭니다。

tillay = sequenceInputlayer(12,“名字”,“seq1”
Name: 'seq1' InputSize: 12 Hyperparameters Normalization: 'none' NormalizationDimension: 'auto'

배열에시퀀스입력계층을포함시킵니다。

inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= [......SequenceInputLayer(InputSize)LSTMLAYER(NUMHIDNEDURITS,“OutputMode”,“最后一次”)完全连接层(numClasses) softmaxLayer分类层]
图层= 5x1层阵列具有图层:1''序列输入序列输入,带12尺寸2''LSTM LSTM,具有100个隐藏单元3''完全连接的9完全连接的第4层''Softmax Softmax 5''分类输出CrossentRopyex

이름이“seq1”224年이고x224 RGB영상으로구성된시퀀스를위한시퀀스입력계층을만듭니다。

图层= sequenceInputLayer([224 224 3]),“名字”,“seq1”
tillay = sequenceInputlayer具有属性:名称:'SEQ1'输入:[224 224 3] radipemeters归一化:'无'标准化dimension:'auto'

序列到标签분류분류를위해lstm신경망을훈련시킵니다。

[1]과[2]에서설명한日本元音데이터세트세트를불러옵니다。XTrain.은lpc켑스트럼계수에대응되는12개의특징이다양한길이의시퀀스270개로구성된셀형배열입니다배열배열Y는는이블1,2,...,9로구성된分类형벡터입니다。XTrain.의요소는각특징에대해하나의행을갖는12개의행과각시간스텝에대해하나의열을갖는가변개수의열로이루어진행렬입니다。

[xtrain,ytrain] =日本人韦沃尔斯特拉特塔;

첫번째시계열을플롯으로시각화합니다。선은각각하나의특징에됩니다됩니다。

图绘制(XTrain{1}”)标题(“训练观察1”) numFeatures = size(XTrain{1},1);传奇(“特性”+字符串(1:numFeatures),'地点',“northeastoutside”

LSTM신경망아키텍처를정의합니다。입력크기를12(입력데이터의특징개수)로지정합니다。은닉유닛100개를포함하고시퀀스의마지막요소를출력하는LSTM계층을지정합니다。마지막으로,크기가인9완전연결계층을포함하여9개의클래스를지정하고,이어서소프트맥스계층과분류계층을지정합니다。

inputSize = 12;numHiddenUnits = 100;numClasses = 9;层= [......SequenceInputLayer(InputSize)LSTMLAYER(NUMHIDNEDURITS,“OutputMode”,“最后一次”)完全连接层(numClasses) softmaxLayer分类层]
Layer = 5×1 Layer array with layers: 1 " Sequence Input序列输入与12维2 " LSTM LSTM与100隐藏单元3 " Fully Connected 9 Fully Connected Layer 4 " Softmax Softmax 5 " Classification Output crossentropyex

훈련옵션을지정합니다。솔버를'亚当'으로지정하고“GradientThreshold”1로를지정합니다。미니배치의크기를27로설정하고최대时代횟수를70으로설정합니다。

미니배치는짧은시퀀스로구성된크기가작은배치이므로훈련에는CPU가더적절합니다。“ExecutionEnvironment”'中央处理器'로설정합니다。GPU를사용할수있는경우GPU에서훈련시키려면“ExecutionEnvironment”“汽车”(디폴트값)로설정하십시오。

maxEpochs = 70;miniBatchSize = 27个;选择= trainingOptions ('亚当',......“ExecutionEnvironment”,'中央处理器',......'maxepochs',maxepochs,......'迷你atchsize'miniBatchSize,......“GradientThreshold”,1,......“详细”,错误的,......“阴谋”,'培训 - 进展');

지정된훈련옵션으로LSTM신경망을훈련시킵니다。

网= trainNetwork (XTrain、YTrain层,选择);

테스트세트를불러오고시퀀스를화자별로분류합니다。

[XTest,欧美]= japaneseVowelsTestData;

테스트데이터를분류합니다。훈련에사용된것과동일하게미니배치크기를지정합니다。

XTest YPred =分类(净,'迷你atchsize', miniBatchSize);

예측의분류정확도를계산합니다。

c = sum(YPred == YTest)./numel(YTest)
ACC = 0.9514.

序列 - 标签분류를위한lstm신경망을만들려면시퀀스계층,lstm계층,완전완전계층,소프트소프트계층,분류출력계층을하는계층을만듭니다。

시퀀스입력계층의크기를입력데이터의특징개수로설정합니다。완전완전연결계층의의크기클래스개수로설정설정시퀀스시퀀스이는지정할필요필요가없습니다。

LSTM계층의경우,은닉유닛의개수와출력모드“最后一次”를지정합니다。

numFeatures = 12;numHiddenUnits = 100;numClasses = 9;层= [......sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“OutputMode”,“最后一次”) fullconnectedlayer (numClasses) softmaxLayer classiationlayer];

sequence-to-label분류를위한LSTM신경망을훈련시키고새데이터를분류하는방법을보여주는예제는딥러닝을사용한시퀀스분류항목을참조하십시오。

sequence-to-sequence분류를위한LSTM신경망을만들려면sequence-to-label분류와동일한아키텍처를사용하되LSTM계층의출력모드를“序列”로설정합니다。

numFeatures = 12;numHiddenUnits = 100;numClasses = 9;层= [......sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“OutputMode”,“序列”) fullconnectedlayer (numClasses) softmaxLayer classiationlayer];

sequence-to-one회귀를위한LSTM신경망을만들려면시퀀스입력계층,LSTM계층,완전연결계층,회귀출력계층을포함하는계층배열을만듭니다。

시퀀스입력계층의크기를입력데이터의특징개수로설정합니다。완전연결계층의크기를응답변수의개수로설정합니다。시퀀스시퀀스이는지정할필요필요가없습니다。

LSTM계층의경우,은닉유닛의개수와출력모드“最后一次”를지정합니다。

numFeatures = 12;numHiddenUnits = 125;numResponses = 1;层= [......sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“OutputMode”,“最后一次”)全连接列(numreponses)回归层];

序列到序列회귀를위한lstm신경망을만들려면序序序만들려면동일한아키텍처를사용하되lstm계층계층의출력모드모드“序列”로설정합니다。

numFeatures = 12;numHiddenUnits = 125;numResponses = 1;层= [......sequenceInputLayer numFeatures lstmLayer (numHiddenUnits,“OutputMode”,“序列”)全连接列(numreponses)回归层];

sequence-to-seting회귀회귀를lstm신경망을훈련시키고새이터에에대해예측하는방법을주는예제딥러닝을사용한序序회귀항목을참조하십시오。

LSTM계층앞에출력모드가“序列”인LSTM계층을추가로삽입하여LSTM신경망의심도를높일수있습니다。과적합을방지하기위해LSTM계층뒤에드롭아웃계층을삽입할수있습니다。

sequence-to-label분류신경망의경우,마지막LSTM계층의출력모드가“最后一次”가되어야되어야。

numFeatures = 12;numhidendunits1 = 125;numhidendunits2 = 100;numClasses = 9;层= [......sequenceInputlayer(numfeatures)lstmlayer(numhidentunits1,“OutputMode”,“序列”) dropoutLayer (0.2) lstmLayer (numHiddenUnits2“OutputMode”,“最后一次”) dropoutLayer(0.2) fullconnectedlayer (numClasses) softmaxLayer classiationlayer];

sequence-to-sequence분류신경망의경우,마지막LSTM계층의출력모드가“序列”가되어야되어야。

numFeatures = 12;numhidendunits1 = 125;numhidendunits2 = 100;numClasses = 9;层= [......sequenceInputlayer(numfeatures)lstmlayer(numhidentunits1,“OutputMode”,“序列”) dropoutLayer (0.2) lstmLayer (numHiddenUnits2“OutputMode”,“序列”) dropoutLayer(0.2) fullconnectedlayer (numClasses) softmaxLayer classiationlayer];

비디오나의료영상데이터와같이영상으로구성된시퀀스를포함하는데이터를위한딥러닝신경망을만듭니다。

  • 신경망에영상으로구성된시퀀스를입력하기위해시퀀스입력계층을사용합니다。

  • 

  • 이러한연산연산을수행한후시퀀스구조체를복원하기위해펼치기계층사용용하여으로구성된배열을을시퀀스로변환변환

  • 영상을특징벡터로변환하기위해평탄화계층을사용합니다。

그런다음입력벡터시퀀스를LSTM계층과BiLSTM계층에입력할수있습니다。

신경망아키텍처정의하기

28日×28회색조영상으로구성된시퀀스10개를클래스로분류하는분류LSTM신경망을만듭니다。

다음과같은신경망아키텍처를정의합니다。

  • 입력크기가[28 28 1]인시퀀스입력계층。

  • 5×5필터20개를갖는컨벌루션,배치정규화및ReLU계층블록。

  • 마지막시간스텝만출력하는은닉유닛200개를갖는LSTM계층。

  • 크기가10(클래스개수)인인완전연결계층과그뒤오는소프트맥스맥스분류분류분류분류분류분류분류

각시간스텝에대해컨벌루션연산을독립적으로수행하려면컨벌루션계층앞에시퀀스접기계층을포함시키십시오。LSTM계층에는벡터시퀀스입력값이필요합니다。시퀀스구조체를복원하고컨벌루션계층의출력값형태를특징벡터로구성된시퀀스로변경하려면컨벌루션계층과LSTM계층사이에시퀀스펼치기계층과평탄화계층을삽입하십시오。

输入= [28 28 1];filtersize = 5;numfilters = 20;numhidandunits = 200;numclasses = 10;层= [......sequenceInputLayer (inputSize“名字”,“输入”) sequenceFoldingLayer (“名字”,“折”) convolution2dLayer (filterSize numFilters,“名字”,“conv”)BatchnormalizationLayer(“名字”,bn的) reluLayer (“名字”,'relu')SequencunfoldingLayer(“名字”,“展开”) flattenLayer (“名字”,“平”)lstmlayer(numhidendunits,“OutputMode”,“最后一次”,“名字”,'lstm')全连接列(numcrasses,“名字”,'fc') softmaxLayer (“名字”,'softmax')ClassificationLayer(“名字”,'分类'));

계층을계층그래프로변환하고,시퀀스접기계층의miniBatchSize출력값을시퀀스펼치기계층의대응되는입력값에연결합니다。

lgraph = layerGraph(层);lgraph = connectLayers (lgraph,“折/ miniBatchSize”,'展开/小贴士');

情节함수를사용하여최종신경망아키텍처를확인합니다。

图绘制(lgraph)

图中包含一个轴。轴包含graphplot类型的对象。

호환성관련고려사항

모두확장

향후릴리스에서동작변경

R2020a에서동작이변경됨

참고문헌

工藤M.,富山J.和Shimbo M.。"使用穿越区域进行多维曲线分类"模式识别字母。第20卷11-13号,1103-1111页。

UCI机器学习库:日语元音数据集。https://archive.ics.uci.edu/ml/datasets/Japanese+Vowels

확장기능

R2017b에개발됨