激活
딥러닝신경망계층활성화계산
구문
설명
CPU또는gpu에서딥러닝신경망계층활성화를계산할수있습니다。GPU를사용하려면并行计算工具箱™와지원되는GPU장치가필요합니다。지원되는장치에대한자세한내용은릴리스별gpu지원(并行计算工具箱)항목을참조하십시오。하드웨어구사항은이름—값수ExecutionEnvironment
를사용하여지정하십시오。
훈련된SeriesNetwork
또는DAGNetwork
를사용하여활성화결과를구하려면激活
함수를사용하십시오。dlnetwork
객체의활성화결과를구하려면向前
함수 또는预测
함수를사용하고输出
옵션을지정하십시오。
예제
SqueezeNet을사용하여특징추출하기
이예제에서는사전훈련된컨벌루션신경망에서학습된영상특징을추출한다음추출한특징을사용하여영상분류기를훈련시키는방법을보여줍니다。
특징추출은사전훈련된심층신경망의강력한표현기능을가장쉽고빠르게사용하는방법입니다。예를들어,추출된특징에대해fitcecoc
(统计和机器学习的工具箱™)를사용하여서포트벡터머신(SVM)을훈련시킬수있습니다。특징추출은데이터를한번만통과하면되므로신경망훈련을가속할GPU가없을때시도할수있는좋은출발점이됩니다。
데이터불러오기
샘플、상의압축을풀고、샘플、상데이터저장소로서불러옵니다。imageDatastore
는폴더이름을기준으로상에자동으로레이블을지정하고데이터를ImageDatastore
객체로저장합니다。영상데이터저장소를사용하면메모리에담을수없는데이터를포함하여다량의영상데이터를저장할수있습니다。데이터를훈련데이터70%와테스트데이터30%로분할합니다。
解压缩(“MerchData.zip”);imds = imageDatastore(“MerchData”,...IncludeSubfolders = true,...LabelSource =“foldernames”);[imdsTrain,imdsTest] = splitEachLabel(imds,0.7,“随机”);
이매우작은데이터세트에는이제55개의훈련영상과20개의검증영상이있습니다。샘플상몇개를시합니다。
numImagesTrain = numel(imdsTrain.Labels);idx = randperm(numImagesTrain,16);I = imtile(imds,“帧”, idx);图imshow(我)
사전훈련된신경망불러오기
사전훈련된SqueezeNet신경망을불러옵니다。1백만개가넘는영상에대해훈련된SqueezeNet은영상을키보드,마우스,연필,각종동물등1000가지사물범주로분류할수있습니다。그결과이모델은다양한상을대하는다양한특징을학습했습니다。
网=挤压网;
신경망아키텍처를분석합니다。
analyzeNetwork(净)
첫번째계층인영상입력계층에입력되는영상은크기가227×227×3이어야합니다。여기서3은색채널의개수입니다。
inputSize = net.Layers(1).InputSize
inputSize =1×3227 227 3
상특징추출하기
신경망은입력상에대한계층현을생성합니다。보다심층의계층에는앞쪽계층의하위수준특징을사용하여생성한상위수준의특징이포함됩니다。훈련、상과테스트、상의특징、현을가져오려면전역평균값풀링계층“pool10”
에서激活
를사용하십시오。@ @상의하위수준@ @현을가져오려면신경망의앞쪽계층을사용하십시오。
이신경망의입력영상은크기가227×227×3이되어야하는데영상데이터저장소의영상은이와다른크기를갖습니다。신경망에입력하기전에훈련영상과테스트영상의크기를자동으로조정하려면증대된영상데이터저장소를만들고원하는영상크기를지정한다음이러한데이터저장소를激活
에대한입력수로사용하십시오。
augimdsTrain = augmentedImageDatastore(inputSize(1:2),imdsTrain);augimdsTest = augmentedImageDatastore(inputSize(1:2),imdsTest);层=“pool10”;featuresTrain =激活(net,augimdsTrain,layer,OutputAs=“行”);featuresTest =激活(net,augimdsTest,layer,OutputAs=“行”);
훈련데이터와테스트데이터로부터클래스레이블을추출합니다。
TTrain = imdsTrain.Labels;TTest = imdsTest.Labels;
상분류기피팅하기
훈련상으로부터추출한특징을예측변수로사용하고fitcecoc
(统计和机器学习的工具箱)를사용하여다중클래스서포트벡터머신(SVM)을피팅합니다。
mdl = fitcecoc(featuresTrain,TTrain);
테스트상분류하기
훈련된SVM모델과테스트영상으로부터추출한특징을사용하여테스트영상을분류합니다。
YPred = predict(mdl, featurest);
4개의샘플테스트상을예측된레이블과함께시합니다。
Idx = [1 5 10 15];数字为i = 1: nummel (idx) subplot(2,2,i) i = readimage(imdsTest,idx(i));标签= YPred(idx(i));imshow (I)标题(标签)结束
테스트세트에대한분류정확도를계산합니다。정확도는신경망이올바르게예측하는레이블의비율입니다。
精度=平均值(YPred == TTest)
准确度= 0.9500
이svm은높은정확도를갖습니다。특징추출을사용했을때의정확도가충분히높지않다면그대신전이학습을사용해보십시오。
입력marketing수
网
- - - - - -훈련된신경망
SeriesNetwork
객체|DAGNetwork
객체
훈련된신경망으로,SeriesNetwork
또는DAGNetwork
객체로지정됩니다。사전훈련된신경망을가져오거나(예:googlenet
함수사용)trainNetwork
를사용하여자신만의고유한신경망을훈련시켜훈련된신경망을얻을수있습니다。
图片
- - - - - -상데이터
데이터저장소|숫자형배열|테이블
상데이터로,다음중하나로지정됩니다。
데이터유형 | 설명 | 대적사용법 | |
---|---|---|---|
데이터저장소 | ImageDatastore |
디스크에저장된상의데이터저장소 | 디스크에저장된같은크기의상들을사용하여예측을수행합니다。 상크기가서로다른경우 |
AugmentedImageDatastore |
크기조,정회전,반사,전단,평행이동을비롯한무작위아핀기하변환을적용하는데이터저장소 | 디스크에저장된서로다른크기의상들을사용하여예측을수행합니다。 |
|
TransformedDatastore |
사용자지정변환함수를사용하여기본데이터저장소에서읽어들인데이터배치를변환하는데이터저장소 |
|
|
CombinedDatastore |
둘이상의기본데이터저장소에서읽어들데이터저장소 |
|
|
사용자지정미니배치데이터저장소 | 데이터의미니배치를반환하는사용자지정데이터저장소 | 다른데이터저장소에서지원하지않는형식의데이터를사용하여예측을수행합니다。 자세한내용은开发自定义小批量数据存储항목을참조하십시오。 |
|
숫자형배열 | 숫자형배열로지정된상 | 메모리에맞고크기조정과같은추가처리가필요하지않은데이터를사용하여예측을수행합니다。 | |
테이블 | 테이블로지정된상 | 테이블에저장된데이터를사용하여예측을수행합니다。 |
여러개의입력값을갖는신경망에데이터저장소를사용하는경우,데이터저장소는TransformedDatastore
객체이거나CombinedDatastore
객체여야합니다。
팁
비디오데이터와같은상시퀀스의경우序列
입력수를사용하십시오。
데이터저장소
데이터저장소는상및응답변수의미니배치를읽어들입니다。데이터저장소는메모리에맞지않는데이터가있거나입력데이터의크기를조정하려는경우에사용하십시오。
다음데이터저장소는상데이터에대해激活
함수와직접호환됩니다。
사용자지정미니배치데이터저장소。자세한내용은开发自定义小批量数据存储항목을참조하십시오。
ImageDatastore
객체는프리페치작업을사용한JPG또는PNG http://http://mail.huawei.com상읽기를위해사용자지정함수를사용하는경우ImageDatastore
객체는프리페치를수행하지않습니다。
팁
딥러닝을위해상을효율적으로전처리하려면(상크기조정포함)augmentedImageDatastore
를사용하십시오。
imageDatastore
함수의readFcn
옵션은일반적으로상당히느리므로전처리나크기조정을위해사용하지마십시오。
变换
함수와结合
함수를사용하여예측을수행하기위해다른내장데이터저장소를사용할수있습니다。이러한함수는데이터저장소에서읽어들데이터를分类
에필한형식으로변환할수있습니다。
데이터저장소출력값의필한형식은신경망아키텍처에따라달라집니다。
신경망아키텍처 | 데이터저장소출력값 | 출력값의예 |
---|---|---|
단일입력값 | 테이블또는셀형배열로,여기서첫번째열은예측변수를지정합니다。 테이블요소는스칼라또는행벡터이거나숫자형배열을포함하는1×1셀형배열이어야합니다。 사용자지정데이터저장소는테이블을출력해야합니다。 |
数据=读取(ds) data = 4×1 table Predictors __________________ {224×224×3 double} {224×224×3 double} {224×224×3 double} {224×224×3 double} |
数据=读取(ds) Data = 4×1 cell array {224×224×3 double} {224×224×3 double} {224×224×3 double} {224×224×3 double} |
||
다중입력값 | 열 개수가 처음 입력값의순서는신경망의 |
数据=读取(ds) Data = 4×2 cell array {224×224×3 double} {128×128×3 double} {224×224×3 double} {128×128×3 double} {224×224×3 double} {128×128×3 double} {224×224×3 double} {128×128×3 double} |
예측변수의형식은데이터의유형에따라달라집니다。
데이터 | 형식 |
---|---|
2차원상 | w h××c숫자형배열로,여기서h, w c는각각영상의높이,너비,채널개수입니다。 |
3차원상 | h d w×××c숫자형배열로,여기서h, w, d c는각각영상의높이,너비,깊이,채널개수입니다。 |
자세한내용은用于深度学习的数据存储항목을참조하십시오。
숫자형배열
메모리에맞고증대와같은추가처리가필요하지않은데이터의경우영상데이터세트를숫자형배열로지정할수있습니다。
숫자형배열의크기와형태는상데이터의유형에따라달라집니다。
데이터 | 형식 |
---|---|
2차원상 | h c w×××N숫자형배열로,여기서h, w c는각각영상의높이,너비,채널개수이고N은영상개수입니다。 |
3차원상 | h c d w××××N숫자형배열로,여기서h, w, d c는각각영상의높이,너비,깊이,채널개수이고N은영상개수입니다。 |
테이블
데이터저장소또는숫자형배열의대으로테이블에상을지정할수도있습니다。
테이블에상을지정할때테이블의각행은관측값하나에대응됩니다。
영상입력의경우예측변수는다음중하나로지정된테이블의첫번째열에있어야합니다。
상에대한상대또는절대파일경로로,문자형벡터로지정됩니다。
2차원영상을나타내는w h××c숫자형배열을포함하는1×1셀형배열로,여기서h, w c는각각영상의높이,너비,채널의개수입니다。
팁
복소수값데이터를신경망에입력하려면입력계층의SplitComplexInputs
옵션이1
이어야합니다。
데이터형:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|表格
복소수지원여부:예
序列
- - - - - -시퀀스또는시계열데이터
데이터저장소|숫자형시퀀스로구성된셀형배열|숫자형배열
시퀀스또는시계열데이터로,다음중하나로지정됩니다。
데이터유형 | 설명 | 대적사용법 | |
---|---|---|---|
데이터저장소 | TransformedDatastore |
사용자지정변환함수를사용하여기본데이터저장소에서읽어들인데이터배치를변환하는데이터저장소 |
|
CombinedDatastore |
둘이상의기본데이터저장소에서읽어들데이터저장소 |
|
|
사용자지정미니배치데이터저장소 | 데이터의미니배치를반환하는사용자지정데이터저장소 | 다른데이터저장소에서지원하지않는형식의데이터를사용하여예측을수행합니다。 자세한내용은开发自定义小批量数据存储항목을참조하십시오。 |
|
숫자형또는셀형배열 | 숫자형배열로지정된단일시퀀스또는숫자형배열로구성된셀형배열로지정된시퀀스데이터세트 | 메모리에맞고사용자지정변환과같은추가처리가필요하지않은데이터를사용하여예측을수행합니다。 |
데이터저장소
데이터저장소는시퀀스및응답변수의미니배치를읽어들입니다。메모리에맞지않는데이터가있거나데이터에변환을적용하려는경우에데이터저장소를사용하십시오。
다음데이터저장소는시퀀스데이터에대해激活
함수와직접호환됩니다。
사용자지정미니배치데이터저장소。자세한내용은开发自定义小批量数据存储항목을참조하십시오。
变换
함수와结合
함수를사용하여예측을수행하기위해다른내장데이터저장소를사용할수있습니다。이러한함수는데이터저장소에서읽어들데이터를激活
함수에필한테이블또는셀형배열형식으로변환할수있습니다。예를들어,각각ArrayDatastore
객체 및TabularTextDatastore
객체를사용하여메모리내배열및CSV파일에서읽어들인데이터를변환하고결합할수있습니다。
데이터저장소는데이터를테이블또는셀형배열로반환해야합니다。사용자지정미니배치데이터저장소는테이블을출력해야합니다。
데이터저장소출력값 | 출력값의예 |
---|---|
테이블 |
数据=读取(ds) data = 4×2表预测 __________________ { 12×50双}{12×50双}{12×50双}{12×50双} |
셀형 배열 |
数据=读取(ds) Data = 4×2 cell array {12×50 double} {12×50 double} {12×50 double} {12×50 double} |
예측변수의형식은데이터의유형에따라달라집니다。
데이터 | 예측변수의형식 |
---|---|
벡터시퀀스 | C×s행렬로,여기서c는시퀀스의특징개수이고,s는시퀀스길이입니다。 |
1차원상시퀀스 | c h××s배열로,여기서h, c는각각영상의높이와채널개수이고,年代는시퀀스길이입니다。 미니배치의각시퀀스는시퀀스길이가같아야합니다。 |
2차원상시퀀스 | h c w×××s배열로,여기서h, w c는각각영상의높이,너비,채널개수이고,年代는시퀀스길이입니다。 미니배치의각시퀀스는시퀀스길이가같아야합니다。 |
3차원상시퀀스 | h c d w××××s배열로,여기서h, w, d c는각각영상의높이,너비,깊이,채널개수이고,年代는시퀀스길이입니다。 미니배치의각시퀀스는시퀀스길이가같아야합니다。 |
테이블로반환되는예측변수의경우,요소는숫자형스칼라또는숫자형행벡터를포함하거나숫자형배열을포함하는1×1셀형배열을포함해야합니다。
자세한내용은用于深度学习的数据存储항목을참조하십시오。
숫자형또는셀형배열
메모리에맞고사용자지정변환과같은추가처리가필요하지않은데이터의경우단일시퀀스를숫자형배열로지정하거나시퀀스데이터세트를숫자형배열로구성된셀형배열로지정할수있습니다。
셀형배열입력값의경우셀형배열은숫자형배열로구성된N×1셀형배열이어야합니다。여기서n은관측값의개수입니다。시퀀스를나타내는숫자형배열의크기와형태는시퀀스데이터의유형에따라달라집니다。
입력값 | 설명 |
---|---|
벡터시퀀스 | C×s행렬로,여기서c는시퀀스의특징개수이고s는시퀀스길이입니다。 |
1차원상시퀀스 | c h××s배열로,여기서h, c는각각영상의높이,채널개수이고年代는시퀀스길이입니다。 |
2차원상시퀀스 | h c w×××s배열로,여기서h, w c는영상의높이,너비,채널개수이고年代는시퀀스길이입니다。 |
3차원상시퀀스 | h c d w××××s배열로,여기서h, w, d c는3차원영상의높이,너비,깊이,채널개수이고年代는시퀀스길이입니다。 |
팁
복소수값데이터를신경망에입력하려면입력계층의SplitComplexInputs
옵션이1
이어야합니다。
데이터형:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|细胞
복소수지원여부:예
特性
- - - - - -특징데이터
데이터저장소|숫자형배열|테이블
특징데이터로,다음중하나로지정됩니다。
데이터유형 | 설명 | 대적사용법 | |
---|---|---|---|
데이터저장소 | TransformedDatastore |
사용자지정변환함수를사용하여기본데이터저장소에서읽어들인데이터배치를변환하는데이터저장소 |
|
CombinedDatastore |
둘이상의기본데이터저장소에서읽어들데이터저장소 |
|
|
사용자지정미니배치데이터저장소 | 데이터의미니배치를반환하는사용자지정데이터저장소 | 다른데이터저장소에서지원하지않는형식의데이터를사용하여예측을수행합니다。 자세한내용은开发自定义小批量数据存储항목을참조하십시오。 |
|
테이블 | 테이블로지정된특징데이터 | 테이블에저장된데이터를사용하여예측을수행합니다。 | |
숫자형배열 | 숫자형배열로지정된특징데이터 | 메모리에맞고사용자지정변환과같은추가처리가필요하지않은데이터를사용하여예측을수행합니다。 |
데이터저장소
데이터저장소는특징데이터및응답변수의미니배치를읽어들입니다。메모리에맞지않는데이터가있거나데이터에변환을적용하려는경우에데이터저장소를사용하십시오。
다음데이터저장소는특징데이터에대해激活
함수와직접호환됩니다。
사용자지정미니배치데이터저장소。자세한내용은开发自定义小批量数据存储항목을참조하십시오。
变换
함수와结合
함수를사용하여예측을수행하기위해다른내장데이터저장소를사용할수있습니다。이러한함수는데이터저장소에서읽어들데이터를激活
함수에필한테이블또는셀형배열형식으로변환할수있습니다。자세한내용은用于深度学习的数据存储항목을참조하십시오。
여러개의입력값을갖는신경망의경우,데이터저장소는TransformedDatastore
객체이거나CombinedDatastore
객체여야합니다。
데이터저장소는데이터를테이블또는셀형배열로반환해야합니다。사용자지정미니배치데이터저장소는테이블을출력해야합니다。데이터저장소출력값의형식은신경망아키텍처에따라달라집니다。
신경망아키텍처 | 데이터저장소출력값 | 출력값의예 |
---|---|---|
하나의입력계층 | 하나이상의열을가진테이블또는셀형배열로,여기서첫번째열은예측변수를지정합니다。 테이블요소는스칼라또는행벡터이거나숫자형배열을포함하는1×1셀형배열이어야합니다。 사용자지정미니배치데이터저장소는테이블을출력해야합니다。 |
1개의입력값을갖는신경망에대한테이블입니다。 数据=读取(ds) data = 4×2表预测 __________________ { 24×24×1双}{1双}{24×1双}{24×1双} |
1개의입력값을갖는신경망에대한셀형배열입니다。 数据=读取(ds) Data = 4×1 cell array {24×1 double} {24×1 double} {24×1 double} {24×1 double} |
||
여러개의입력계층 | 열 개수가 처음 입력값의순서는신경망의 |
2개의입력값을갖는신경망에대한셀형배열입니다。 数据=读取(ds) Data = 4×3 cell array {24×1 double} {28×1 double} {24×1 double} {28×1 double} {24×1 double} {28×1 double} {24×1 double} {28×1 double} |
예측변수는c×1열벡터여야합니다。여기서c는특징의개수입니다。
자세한내용은用于深度学习的数据存储항목을참조하십시오。
테이블
메모리에맞고사용자지정변환과같은추가처리가필요하지않은특징데이터의경우특징데이터와응답변수를테이블로지정할수있습니다。
테이블의각행은관측값하나에대응됩니다。테이블열에서예측변수의배치방식은작업유형에따라달라집니다。
작업 | 예측 변수 |
---|---|
특징 분류 | 하나이상의열에스칼라로지정된특징。 |
숫자형배열
메모리에맞고사용자지정변환과같은추가처리가필요하지않은특성데이터의경우특징데이터를숫자형배열로지정할수있습니다。
숫자형배열은n×numFeatures
숫자형배열이어야합니다。여기서n은관측값의개수이고,numFeatures
는입력데이터의특징의개수입니다。
팁
복소수값데이터를신경망에입력하려면입력계층의SplitComplexInputs
옵션이1
이어야합니다。
데이터형:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|表格
복소수지원여부:예
X1,…,XN
- - - - - -여러개의입력값을갖는신경망에대한숫자형배열또는셀형배열
숫자형배열|셀형 배열
여러개의입력값을갖는신경망에대한숫자형배열또는셀형배열입니다。
상,시퀀스,특징예측변수입력값에대해예측변수형식은각각图片
,序列
,特性
수설명에기술된형식과일치해야합니다。
여러개의입력값을갖는신경망을훈련시키는방법을보여주는예제는训练网络图像和特征数据항목을참조하십시오。
복소수값데이터를신경망에입력하려면입력계층의SplitComplexInputs
옵션이1
이어야합니다。
데이터형:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|细胞
복소수지원여부:예
混合
- - - - - -혼합된데이터
TransformedDatastore
|CombinedDatastore
|사용자지정미니배치데이터저장소
혼합된데이터로,다음중하나로지정됩니다。
데이터유형 | 설명 | 대적사용법 |
---|---|---|
TransformedDatastore |
사용자지정변환함수를사용하여기본데이터저장소에서읽어들인데이터배치를변환하는데이터저장소 |
|
CombinedDatastore |
둘이상의기본데이터저장소에서읽어들데이터저장소 |
|
사용자지정미니배치데이터저장소 | 데이터의미니배치를반환하는사용자지정데이터저장소 | 다른데이터저장소에서지원하지않는형식의데이터를사용하여예측을수행합니다。 자세한내용은开发自定义小批量数据存储항목을참조하십시오。 |
变换
함수와结合
함수를사용하여예측을수행하기위해다른내장데이터저장소를사용할수있습니다。이러한함수는데이터저장소에서읽어들데이터를激活
함수에필한테이블또는셀형배열형식으로변환할수있습니다。자세한내용은用于深度学习的数据存储항목을참조하십시오。
데이터저장소는데이터를테이블또는셀형배열로반환해야합니다。사용자지정미니배치데이터저장소는테이블을출력해야합니다。데이터저장소출력값의형식은신경망아키텍처에따라달라집니다。
데이터저장소출력값 | 출력값의예 |
---|---|
열의개수가 입력값의순서는신경망의 |
数据=读取(ds) Data = 4×3 cell array {24×1 double} {28×1 double} {24×1 double} {28×1 double} {24×1 double} {28×1 double} {24×1 double} {28×1 double} |
상,시퀀스,특징예측변수입력값에대해예측변수형식은각각图片
,序列
,特性
수설명에기술된형식과일치해야합니다。
여러개의입력값을갖는신경망을훈련시키는방법을보여주는예제는训练网络图像和特征数据항목을참조하십시오。
팁
숫자형배열을데이터저장소로변환하려면arrayDatastore
를사용하십시오。
层
- - - - - -활성화결과를추출할계층
숫자형덱스|문자형벡터
활성화결과를추출할계층으로,숫자형marketing덱스또는문자형벡터로지정됩니다。
SeriesNetwork
객체의활성화결과를구하려면层를숫자형인덱스로지정하거나계층이름에해당하는문자형벡터로지정하십시오。
DAGNetwork
객체의활성화결과를구하려면层를계층이름에해당하는문자형벡터로지정하십시오。계층에여러개의출력값이있다면계층이름을지정하고,문자"를입력하고,이어서계층출력값의이름을지정하여계층과출력값을지정합니다。즉,层
를“layerName / outputName”
과같은형식으로지정합니다。
예:3.
예:“conv1”
예:“mpool /出”
이름-값通讯录수
선택적수쌍을Name1 = Value1,…,以=家
으로지정합니다。여기서的名字
은수이름이고价值
는대응값입니다。이름-값수는다른수뒤에와야하지만,수쌍의순서는상관없습니다。
R2021a이전릴리스에서는쉼` ` `를사용하여각이름과값을구분하고的名字
을따옴@ @로묶으십시오。
예:MiniBatchSize = 256
은미니배치크기를256으로지정합니다。
OutputAs
- - - - - -활성화결과출력형식
“通道”
(디폴트값)|“行”
|“列”
활성화결과출력형식으로,“通道”
,“行”
또는“列”
로지정됩니다。출력형식에대한설명은行为
항목을참조하십시오。
상입력값의경우,OutputAs
옵션이“通道”
이면입력데이터의、상은신경망의、이면입력데이터의、상입력계층의입력크기보다클수있습니다。그밖의다른출력형식의경우에는입력값의영상크기가신경망의영상입력계층의입력크기와같아야합니다。
MiniBatchSize
- - - - - -미니배치의크기
128
(디폴트값)|양의 정수
예측에사용할미니배치의크기로,양의정수로지정됩니다。미니배치가클수록메모리가더많이필하지만예측속도는빨라질수있습니다。
SequenceLength
- - - - - -시퀀스를채우거나자르는옵션
“最长”
(디폴트값)|“最短”
|양의 정수
입력시퀀스를채우거나자르거나분할하는옵션으로,다음중하나로지정됩니다。
“最长”
-각미니배치의시퀀스길이가가장긴시퀀스의길이와같아지도록채웁니다。이옵션은채우기로해신경망에잡음이포함되더라도데이터를버리지않습니다。“最短”
-각미니배치의시퀀스가가장짧은시퀀스와길이가같아지도록자릅니다。이옵션은데이터를버리게되더라도채우기를추가하지않습니다。양의정수-각미니배치에대해,미니배치에서가장긴시퀀스의길이에맞춰시퀀스를채운다음,지정된길이를갖는더작은크기의시퀀스로분할합니다。분할이이루어지면소프트웨어가미니배치를추가로만듭니다。데이터의시퀀스길이가지정된시퀀스길이로균등하게나뉘지않는경우,해당시퀀스의끝을포함하는미니배치의길이는지정된시퀀스길이보다짧습니다。전체시퀀스가메모리에맞지않으면이옵션을사용하십시오。또는
MiniBatchSize
옵션을더낮은값으로설정하여미니배치당시퀀스개수를줄여보십시오。
입력시퀀스채우기,자르기,분할의효과에대한자세한정보는시퀀스채우기,자르기및분할항목을참조하십시오。
데이터형:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
|字符
|字符串
SequencePaddingValue
- - - - - -시퀀스에채울값
0
(디폴트값)|스칼라
입력시퀀스에채울값으로,스칼라로지정됩니다。
이 옵션은SequenceLength
가“最长”
또는양의정수경우에만유효합니다。시퀀스를南
으로채우면신경망전체로오류가전파될수있으므로유의하십시오。
데이터형:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
SequencePaddingDirection
- - - - - -채우기또는자르기방향
“正确”
(디폴트값)|“左”
채우기또는자르기방향으로,다음중하나로지정됩니다。
“正确”
-시퀀스들을오른쪽에서채우거나자릅니다。시퀀스들은동일한시간스텝에서시작하며소프트웨어가시퀀스들의끝부분에서자르기나채우기를수행합니다。“左”
-시퀀스들을왼쪽에서채우거나자릅니다。시퀀스들이동일한시간스텝에서끝나도록소프트웨어가시퀀스들의시작부분에서자르기나채우기를수행합니다。
순환계층은시퀀스데이터를한번에하나의시간스텝씩처리하기때문에순환계층의OutputMode
속성이“最后一次”
경우마지막시간스텝에서의채우기가계층출력에부정적향을줄수있습니다。시퀀스데이터를왼쪽에서채우거나자르려면SequencePaddingDirection
옵션을“左”
로설정하십시오。
序列对序列신경망의경우(각순환계층의OutputMode
속성이“序列”
인경우),첫시간스텝들에서의채우기가앞쪽에있는시간스텝들의예측에부정적인영향을줄수있습니다。시퀀스데이터를오른쪽에서채우거나자르려면SequencePaddingDirection
옵션을“正确”
로설정하십시오。
입력시퀀스채우기,자르기,분할의효과에대한자세한정보는시퀀스채우기,자르기및분할항목을참조하십시오。
加速度
- - - - - -성능최적화
“汽车”
(디폴트값)|“墨西哥人”
|“没有”
성능최적화로,다음중하나로지정됩니다。
“汽车”
-입력신경망및하드웨어리소스에적합한여러최적화를자동으로적용합니다。“墨西哥人”
- mex함수를컴파일하고실행합니다。이옵션은gpu를사용하는경우에만사용할수있습니다。GPU를사용하려면并行计算工具箱와지원되는GPU장치가필요합니다。지원되는장치에대한자세한내용은릴리스별gpu지원(并行计算工具箱)항목을참조하십시오。并行计算工具箱또는적당한GPU를사용할수없는경우,오류가반환됩니다。“没有”
-모든가속을비활성화합니다。
加速度
이“汽车”
rr경우matlab®은호환되는여러최적화를적용하고mex함수를생성하지않습니다。
“汽车”
와“墨西哥人”
옵션을사용하면초기실행시간이늘어나는대신성능이향상될수있습니다。호환되는파라미터를사용한후속호출은더빨리실행됩니다。성능최적화는새입력데이터를사용하여함수를여러번호출해야하는경우에사용하십시오。
“墨西哥人”
옵션은신경망과함수호출에서사용된파라미터에따라墨西哥人함수를생성하고실행합니다。단일신경망에한번에여러개의mex함수가연결되어있을수있습니다。신경망변수를지우면해당신경망에연결된모든mex함수도지워집니다。
“墨西哥人”
옵션은단일gpu를사용하는경우에사용할수있습니다。
“墨西哥人”
옵션을사용하려면C / c++컴파일러가설치되어있어야하며GPU编码器™界面深度学习库지원패키지가필요합니다。Matlab의애드온탐색기를사용하여지원패키지를설치하십시오。설정지침은墨西哥人设置(GPU编码器)항목을참조하십시오。GPU编码器는필하지않습니다。
“墨西哥人”
옵션은sequenceInputLayer
객체와featureInputLayer
객체를제외하고金宝app支持层(GPU编码器)페이지에나열된계층을포함하는신경망을지원합니다。
“墨西哥人”
옵션을사용할경우MATLAB编译器™는신경망배포를지원하지않습니다。
ExecutionEnvironment
- - - - - -하드웨어리소스
“汽车”
(디폴트값)|“图形”
|“cpu”
|“multi-gpu”
|“平行”
하드웨어리소스로,다음중하나로지정됩니다。
“汽车”
- gpu를사용할수있으면gpu를사용하고그렇지않으면cpu를사용합니다。“图形”
- gpu를사용합니다。GPU를사용하려면并行计算工具箱와지원되는GPU장치가필요합니다。지원되는장치에대한자세한내용은릴리스별gpu지원(并行计算工具箱)항목을참조하십시오。并行计算工具箱또는적당한GPU를사용할수없는경우,오류가반환됩니다。“cpu”
- cpu를사용합니다。“multi-gpu”
——디폴트클러스터프로파일에따라로컬병렬풀을사용하여컴퓨터1대에서여러개의GPU를사용합니다。기존병렬풀이없는경우소프트웨어는사용가능한GPU의개수와동일한풀크기로병렬풀을시작합니다。“平行”
-디폴트클러스터프로파일에따라로컬또는원격병렬풀을사용합니다。기존병렬풀이없는경우소프트웨어는디폴트클러스터프로파일을사용하여병렬풀을시작합니다。풀이gpu를사용할수있는경우,고유한gpu를갖는워커만계산을수행합니다。풀에gpu가없는경우,대신사용가능한모든CPU워커에서계산이이루어집니다。
서로다른실행환경을사용해야하는경우에대한자세한내용은并行、gpu和云中扩展深度学习항목을참조하십시오。
“图形”
,“multi-gpu”
,“平行”
옵션을사용하려면并行计算工具箱가필cmc합니다。딥러닝을위해gpu를사용하려면지원되는gpu장치도필uc합니다。지원되는장치에대한자세한내용은릴리스별gpu지원(并行计算工具箱)항목을참조하십시오。이러한옵션중하나를선택했는데并行计算工具箱또는적당GPU한가없는경우,오류가반환됩니다。
ExecutionEnvironment
를“multi-gpu”
또는“平行”
로설정하여순환계층이있는신경망으로병렬로예측을수행하려면,SequenceLength
옵션은“最短”
또는“最长”
여야합니다。
状态
파라미터를포함하는사용자지정계층이있는신경망은병렬예측수행을지원하지않습니다。
출력marketing수
行为
-신경망계층의활성화결과
숫자형배열|셀형배열
신경망계층의활성화결과로,숫자형배열또는숫자형배열로구성된셀형배열로반환됩니다。行为
의형식은입력데이터의유형,계층출력값의유형및지정된OutputAs
옵션에따라달라집니다。
상출력값또는접힌시퀀스출력값
계층이상또는접힌시퀀스데이터를출력하는경우行为
는숫자형배열입니다。
OutputAs |
行为 |
---|---|
“通道” |
2차원상출력값에대해, 3차원상출력값에대해, 접힌2차원상시퀀스출력값에대해, 접힌3차원상시퀀스출력값에대해, |
“行” |
2차원및3차원상출력값에대해, 접힌2차원및3차원상시퀀스출력값에대해, |
“列” |
2차원및3차원상출력값에대해, 접힌2차원및3차원상시퀀스출력값에대해, |
시퀀스출력값
层
에시퀀스출력값이있는경우(예:출력모드가“序列”
nlstm계층),行为
는셀형배열입니다。이 경우“OutputAs”
옵션은“通道”
여야합니다。
OutputAs |
行为 |
---|---|
“通道” |
벡터시퀀스출력에대해, 2차원상시퀀스출력에대해, 3차원상시퀀스출력에대해, 위의 경우 |
특징벡터및단일시간스텝출력값
层
가특징벡터또는시퀀스의단일시간스텝을출력하는경우(예:출력모드가“最后一次”
nlstm계층),行为
는숫자형배열입니다。
OutputAs |
行为 |
---|---|
“通道” |
특징벡터또는벡터데이터를포함하는단일시간스텝에대해, 2차원상데이터를포함하는단일시간스텝에대해, 3차원상데이터를포함하는단일시간스텝에대해, |
“行” |
N×m행렬로,여기서n은관측값의개수이고米 은선택한계층의출력값소개수입니다。이 경우法案(我,:) 는我 번째시퀀스에대한활성화결과를포함합니다。 |
“列” |
m×n행렬로,여기서m은선택한계층의출력값요소개수이고n은관측값의개수입니다。이 경우法》(:,我) 는我 번째상에대한활성화결과를포함합니다。 |
알고리즘
trainNetwork
함수를사용하여신경망을훈련시키거나DAGNetwork
객체 및SeriesNetwork
객체와함께예측함수또는검증함수를사용할때소프트웨어는단정밀도부동소수점연산방식을사용하여이러한계산을수행합니다。훈련,예측및검을위한함수는trainNetwork
,预测
,分类
,激活
등이있습니다。CPU와GPU를모두사용하여신경망을훈련시키는경우,단정밀도연산방식이사용됩니다。
참고 문헌
[1]工藤,美一,富山俊,新保真。“使用穿过区域的多维曲线分类”模式识别信20,没有。11-13(1999年11月):1103-11。https://doi.org/10.1016/s0167 - 8655 (99) 00077 - x。
[2] UCI机器学习库:日语元音数据集。https://archive.ics.uci.edu/ml/datasets/Japanese+Vowels。
확장 기능
C/ c++코드생성
MATLAB®Coder™를사용하여C코드나c++코드를생성할수있습니다。
사용법관련참고및제한사항:
c++코드생성시에다음과같은구문이지원됩니다。
Act =激活(网络,图像,图层)
,여기서图片
는숫자형배열입니다。Act =激活(净,序列,层)
,여기서序列
는셀형배열입니다。Act =激活(净,特征,层)
,여기서特性
는숫자형배열입니다。act =激活(__,名称,值)
(위에열거된구문에사용할수있음)
숫자형입력값의경우입력값은가변크기를가질수없습니다。입력값의크기는코드생성시점에고정되어야합니다。
벡터시퀀스입력값의경우,코드생성시에특징의개수가상수여야합니다。시퀀스길이는가변크기일수있습니다。
상시퀀스입력값의경우,코드생성시에높이,너비,채널개수가상수여야합니다。
코드생성시에
层
수는상수여야합니다。코드생성시에는
OutputAs
,MiniBatchSize
,SequenceLength
,SequencePaddingDirection
및SequencePaddingValue
이름-값쌍通讯录수만지원됩니다。모든이름-값쌍은컴파일타임상수여야합니다。활성화결과출력형식은
“通道”
여야합니다。코드생성시에는
SequenceLength
이름-값쌍의“最长”
및“最短”
옵션만지원됩니다。英特尔®Mkl-dnn타깃에대한코드생성시
SequenceLength =“最长”
,SequencePaddingDirection =“左”
및SequencePaddingValue = 0
이름-값通讯录수의조합은지원되지않습니다。
딥러닝신경망을위해코드를생성하는방법에대한자세한내용은使用MATLAB编码器进行深度学习代码生成的工作流程(MATLAB编码器)항목을참조하십시오。
Gpu코드생성
GPU编码器™를사용하여NVIDIA GPU®용CUDA®코드를생성할수있습니다。
사용법관련참고및제한사항:
Gpu코드생성시에다음과같은구문이지원됩니다。
Act =激活(网络,图像,图层)
,여기서图片
는숫자형배열입니다。Act =激活(净,序列,层)
,여기서序列
는셀형배열또는숫자형배열입니다。Act =激活(净,特征,层)
,여기서特性
는숫자형배열입니다。act =激活(__,名称,值)
(위에열거된구문에사용할수있음)
숫자형입력값의경우입력값은가변크기를가질수없습니다。입력값의크기는코드생성시점에고정되어야합니다。
Gpu코드생성시
gpuArray
입력값은激活
함수에서지원되지않습니다。cuDNN라이브러리는벡터와2차원상시퀀스를지원합니다。TensorRT라이브러리는벡터입력시퀀스만지원합니다。Gpu용arm®
计算库
는순환신경망을지원하지않습니다。벡터시퀀스입력값의경우,코드생성시에특징의개수가상수여야합니다。시퀀스길이는가변크기일수있습니다。
상시퀀스입력값의경우,코드생성시에높이,너비,채널개수가상수여야합니다。
코드생성시에
层
수는상수여야합니다。코드생성시에는
OutputAs
,MiniBatchSize
,SequenceLength
,SequencePaddingDirection
및SequencePaddingValue
이름-값쌍通讯录수만지원됩니다。모든이름-값쌍은컴파일타임상수여야합니다。활성화결과출력형식은
“通道”
여야합니다。코드생성시에는
SequenceLength
이름-값쌍의“最长”
및“最短”
옵션만지원됩니다。激活
함수에대한GPU코드생성에서는반정밀도부동소수점데이터형으로정의된입력값이지원됩니다。자세한내용은一半
(GPU编码器)를참조하십시오。
Gpu배열
并行计算工具箱™를사용해GPU(그래픽스처리장치)에서실행하여코드실행속도를높일수있습니다。
입력데이터가다음과같은경우
ExecutionEnvironment
옵션은“汽车”
또는“图形”
여야합니다。gpuArray
gpuArray
객체를포함하는셀형배열gpuArray
객체를포함하는테이블gpuArray
객체를포함하는셀형배열을출력하는데이터저장소gpuArray
객체를포함하는테이블을출력하는데이터저장소
자세한내용은Gpu에서matlab함수실행하기(并行计算工具箱)항목을참조하십시오。
버전 내역
R2016a에개발됨R2022b:SequenceLength
옵션을정수로지정한경우,예측함수는시퀀스를분할하기전에가장긴시퀀스의길이에맞춰미니배치를채움
R2022b부터,预测
,分类
,predictAndUpdateState
,classifyAndUpdateState
,激活
함수를사용하여시퀀스데이터로예측을수행할때SequenceLength
옵션이정수인경우,각미니배치에서가장긴시퀀스의길이에맞춰시퀀스들을채운다음이들시퀀스를지정된시퀀스길이를갖는미니배치로분할합니다。미니배치의시퀀스길이가SequenceLength
로균등하게나뉘지않는경우,마지막분할미니배치의길이는SequenceLength
보다짧습니다。이동작은채우기값만포함하는시간스텝이예측에향을미치는것을방지합니다。
이전릴리스에서는,미니배치의길이보다크거나같은SequenceLength
의가장가까운배수에해당하는길이가되도록미니배치시퀀스들을채운다음데이터를분할합니다。이동작을재현하려면미니배치의길이가SequenceLength
의적절한배수가되도록입력데이터를수동으로채우십시오。sequence-to-sequence워크플로의경우채우기값에해당하는출력의시간스텝을수동으로제거해야할수도있습니다。
Matlab명령
다음matlab명령에해당하는링크를클릭했습니다。
명령을실행하려면matlab명령창에입력하십시오。웹브라우저는matlab명령을지원하지않습니다。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。