이번역페이지는최신내용을담고있지않습니다。최신내용을영문으로보려면여기를클릭하십시오。
시퀀스입력계층
시퀀스입력계층은신경망에시퀀스데이터를입력합니다。
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”
|“rescale-symmetric”
|'Rescale-Zero-One'
|함수핸들데이터가입력계층을통과하여순방향으로전파될때마다적용할데이터정규화,로다음중하나로지정됩니다。
'Zerocenter'
- - - - - -的意思是
으로지정된평균값을뺍니다。
“zscore”
- - - - - -的意思是
으로지정된평균값을빼고StandardDeviation
으로나눕니다。
“rescale-symmetric”
- - - - - -闵
으로지정된최솟값과马克斯
로지정된최댓값을사용하여입력값이[1]범위내에오도록다시스케일링합니다。
'Rescale-Zero-One'
- - - - - -闵
으로지정된최솟값과马克斯
로지정된최댓값을사용하여입력값이[0,1]범위내에오도록다시스케일링합니다。
“没有”
- 입력데이터를정규화하지않습니다않습니다。
함수핸들-지정된함수를사용하여데이터를정규화합니다。함수는Y = func (X)
형식이되어야합니다。여기서X
는입력데이터이고출력값Y
는정규화된데이터입니다。
팁
소프트웨어는기본적으로훈련시점에자동으로정규화통계량을계산합니다。훈련중에시간을절약하려면정규화에필요한통계량을지정하고培训选项
의'resetInputnormalization'
을假
로설정하십시오。
입력데이지가채우기를포함할경우계층입력입력이터데를정규정규화할채우기값을무시무시할때채우기값을무시무시무시채우기값을을무시무시
正常化Dimension.
- - - - - -정규화차원“汽车”
(디폴트값)|“通道”
|“元素”
|“所有”
정규화차원으로,다음중하나로지정。
“汽车”
——훈련옵션이假
이고정규화통계량중하나(的意思是
,StandardDeviation
,闵
또는马克斯
)그렇지않은경우,훈련시점에통계량을다시계산하고채널별정규화를적용합니다。
“通道”
——채널별정규화。
“元素”
——요소별정규화。
“所有”
- 스칼라통계량을사용하여모든값을정규화。
的意思是
- - - - - -0을중심으로하는정규화및z -점수정규화에서의평균값[]
(디폴트값)|숫자형배열|숫자형스칼라0을중심으로하는정규화및z -점수정규화에서의평균값으로,숫자형배열또는빈값으로지정됩니다。
的意思是
속성을지정한경우归一化
은'Zerocenter'
또는“zscore”
여야합니다。的意思是
이[]
인경우소프트웨어는훈련시점에평균값을계산합니다。
이속성은훈련없이신경망을만들때(예를들어,assembleNetwork
를사용하여하여신경망신경망을조합할때때때수수수할할수
데이터형:单身的
|双
|INT8.
|int16
|int32
|int64
|uint8.
|uint16
|UINT32
|UINT64
StandardDeviation
- - - - - -표준편차[]
(디폴트값)|숫자형배열|숫자형스칼라z점수정규화에사용되는표준편차로,숫자형배열,숫자형스칼라또는빈값으로지정됩니다。
StandardDeviation
속성을지정한경우归一化
은“zscore”
여야합니다。StandardDeviation
이[]
인경우소프트웨어는훈련시점에표준편차를계산합니다。
이속성은훈련없이신경망을만들때(예를들어,assembleNetwork
를사용하여하여신경망신경망을조합할때때때수수수할할수
데이터형:单身的
|双
|INT8.
|int16
|int32
|int64
|uint8.
|uint16
|UINT32
|UINT64
闵
- - - - - -다시스케일링하기위한최솟값[]
(디폴트값)|숫자형배열|숫자형스칼라다시스케일링하기위한최솟값으로,숫자형배열또는빈값으로지정됩니다。
闵
속성을지정한경우归一化
은“rescale-symmetric”
또는'Rescale-Zero-One'
이어야합니다。闵
이[]
인경우소프트웨어는훈련시점에국소최솟값을계산합니다。
이속성은훈련없이신경망을만들때(예를들어,assembleNetwork
를사용하여하여신경망신경망을조합할때때때수수수할할수
데이터형:单身的
|双
|INT8.
|int16
|int32
|int64
|uint8.
|uint16
|UINT32
|UINT64
马克斯
- - - - - -다시스케일링하기위한최댓값[]
(디폴트값)|숫자형배열|숫자형스칼라다시스케일링하기위한최댓값으로,숫자형배열또는빈값으로지정됩니다。
马克斯
속성을지정한경우归一化
은“rescale-symmetric”
또는'Rescale-Zero-One'
이어야합니다。马克斯
가[]
인경우소프트웨어는훈련시점에국소최댓값을계산합니다。
이속성은훈련없이신경망을만들때(예를들어,assembleNetwork
를사용하여하여신경망신경망을조합할때때때수수수할할수
데이터형:单身的
|双
|INT8.
|int16
|int32
|int64
|uint8.
|uint16
|UINT32
|UINT64
姓名
- - - - - -계층이름''
(디폴트값)|문자형벡터|字符串형스칼라계층이름으로,문자형벡터또는字符串형스칼라로지정됩니다。계층그래프에계층을포함하려면비어있지않은고유한계층이름을지정해야합니다。이계층을사용하여시리즈신경망을훈련시킬때姓名
을''
로설정하면,소프트웨어가훈련시점에해당계층에자동으로이름을할당합니다。
데이터형:字符
|细绳
NumInputs
- - - - - -입력값의개수계층의입력값개수。이계층에는입력값이없습니다。
데이터형:双
InputNames
- - - - - -입력값이름{}
(디폴트값)계층의입력값이름。이계층에는입력값이없습니다。
데이터형:细胞
NumOutputs
- - - - - -출력값개수계층의출력값개수。이계층은단일출력값만가집니다。
데이터형:双
OutputNames
- - - - - -출력값이름{'出去'}
(디폴트값)계층의출력값이름。이계층은단일출력값만가집니다。
데이터형:细胞
이름이“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)
sequenceInputlayer.
는기본적으로0이중심이되는정규화에채널별정규화를사용함향후릴리스에서동작변경
R2019b부터,sequenceInputlayer.
는기본적으로0이중심이되는정규화에채널별정규화를사용합니다。이전버전에서는이계층이요소별정규화를사용했습니다。이동작을재현하려면이계층의正常化Dimension.
옵션을“元素”
로설정하십시오。
sequenceInputlayer.
는정규화시에채우기값을무시함R2020a에서동작이변경됨
R2020A부터,sequenceInputlayer.
객체는정규화시에입력데이터의채우기값을무시합니다。즉,이제sequenceInputlayer.
의归一化
옵션을사용하면훈련이모든데이터조작에대해불변합니다。예를들어,이제'Zerocenter'
정규화는훈련결과가데이터의평균에대해불변한다는점을내포합니다。
채우기가적용된시퀀스에서시킬경우,초반초반의계산된정규인자들인자들이다를수있으며서로다른결과생성할수있습니다。
工藤M.,富山J.和Shimbo M.。"使用穿越区域进行多维曲线分类"模式识别字母。第20卷11-13号,1103-1111页。
UCI机器学习库:日语元音数据集。https://archive.ics.uci.edu/ml/datasets/Japanese+Vowels
벡터시퀀스입력값의경우,코드생성시에특징의가상수상수합니다。
코드생성시함수핸들을사용하여지정된“归一化”
은지원되지않습니다。
사용법관련참고및제한사항:
GPU编码器™를사용하여CUDA®또는C ++코드를생성하려면먼저심층신경망을생성하고훈련시켜야합니다。신경망이훈련되고평가된후에는코드를생성하고nvidia®또는手臂®GPU프로세서를사용하는플랫폼에컨벌루션신경망을배포하도록코드생성기를구성할수있습니다。자세한내용은使用GPU编码器进行深度学习(GPU编码器)항목을참조하십시오。
이계층의경우NVIDIA CUDA심층신경망라이브러리(cuDNN)또는NVIDIA TensorRT™고성능추론라이브러리를사용하는코드를생성할수있습니다。
CUDNN라이브러리는벡터벡터와와와와영상영상시퀀스를지원t라라라입력시퀀스만합니다합니다。
벡터시퀀스입력값의경우,코드생성시에특징의가상수상수합니다。
영상시퀀스입력값의경우,코드생성시에높이,너비,채널개수가상수여야합니다。
코드생성시함수핸들을사용하여지정된“归一化”
은지원되지않습니다。
lstmLayer
|Bilstmlayer.
|gruLayer
|classifyAndUpdateState
|predictandanddatestate.
|resetState
|sequenceFoldingLayer
|flattenLayer
|sequenceUnfoldingLayer
|심층신경망디자이너|featureInputLayer
다음MATLAB명령에해당하는링크를클릭했습니다。
명령을실행하려면MATLAB명령창에입력하십시오。웹브라우저는MATLAB명령을지원하지않습니다。
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站表现。其他MathWorks国家网站不适合从您的位置访问。