augmentedImageSource
(제거 예정) 증대 영상 데이터로 구성된 배치 생성
augmentedImageSource
는 향후 릴리스에서 제거될 예정입니다. 대신 augmentedImageDatastore
함수를 사용하여 증대 영상 데이터저장소를 만드십시오. 자세한 내용은 호환성 관련 고려 사항 항목을 참조하십시오.
구문
설명
는 영상 데이터저장소 auimds
= augmentedImageSource(outputSize
,imds
)imds
의 영상을 사용하여 분류 문제를 위한 증대 영상 데이터저장소 auimds
를 만듭니다. 출력 영상은 outputSize
에 지정된 크기를 가집니다.
는 분류나 회귀 문제를 위한 증대 영상 데이터저장소를 만듭니다. 배열 auimds
= augmentedImageSource(outputSize
,X
,Y
)X
는 예측 변수를 포함하고 배열 Y
는 categorical형 레이블 또는 숫자형 응답 변수를 포함합니다.
은 분류나 회귀 문제를 위한 증대 영상 데이터저장소를 만듭니다. 테이블 auimds
= augmentedImageSource(outputSize
,tbl
)tbl
은 예측 변수와 응답 변수를 포함합니다.
는 분류나 회귀 문제를 위한 증대 영상 데이터저장소를 만듭니다. 테이블 auimds
= augmentedImageSource(outputSize
,tbl
,responseNames
)tbl
은 예측 변수와 응답 변수를 포함합니다. responseNames
인수는 tbl
의 응답 변수를 지정합니다.
는 증대 영상 데이터저장소가 수행하는 영상 전처리를 이름-값 쌍을 사용하여 구성하고 증대 영상 데이터저장소를 만듭니다. 여러 개의 이름-값 쌍을 지정할 수 있습니다.auimds
= augmentedImageSource(___,Name,Value
)
예제
augmentedImageSource
를 사용하여 회전 불변성을 갖는 신경망 훈련시키기
훈련된 컨벌루션 신경망이 회전 불변성을 갖도록 무작위 회전을 사용하여 영상을 전처리합니다. 이 예제에서는 augmentedImageSource
함수를 사용하여 증대 영상 datastore 객체를 만듭니다. augmentedImageDatastore
함수를 사용하여 증대 영상 datastore 객체를 만드는 권장 워크플로에 대한 예제는 증대 영상을 사용하여 신경망 훈련시키기 항목을 참조하십시오.
손으로 쓴 숫자를 표시하는 합성 영상으로 구성된 샘플 데이터를 불러옵니다.
[XTrain,YTrain] = digitTrain4DArrayData;
digitTrain4DArrayData
는 숫자 훈련 세트를 4차원 배열 데이터로 불러옵니다. XTrain
은 28×28×1×5,000 배열입니다. 여기서 각각은 다음을 나타냅니다.
28은 영상의 높이와 너비입니다.
1은 채널의 개수입니다.
5,000은 손으로 쓴 숫자를 나타내는 합성 영상의 개수입니다.
YTrain
은 각 관측값에 대한 레이블을 포함하는 categorical형 벡터입니다.
훈련 중에 영상을 회전하는 영상 증대기를 만듭니다. 이 영상 증대기(image augmenter)는 각 영상을 임의의 각도만큼 회전합니다.
imageAugmenter = imageDataAugmenter('RandRotation',[-180 180])
imageAugmenter = imageDataAugmenter with properties: FillValue: 0 RandXReflection: 0 RandYReflection: 0 RandRotation: [-180 180] RandScale: [1 1] RandXScale: [1 1] RandYScale: [1 1] RandXShear: [0 0] RandYShear: [0 0] RandXTranslation: [0 0] RandYTranslation: [0 0]
augmentedImageSource
함수를 사용하여 증대 영상 데이터저장소를 만듭니다. 증대 영상의 크기, 훈련 데이터, 영상 증대 함수를 지정합니다.
imageSize = [28 28 1];
auimds = augmentedImageSource(imageSize,XTrain,YTrain,'DataAugmentation',imageAugmenter)
auimds = augmentedImageDatastore with properties: NumObservations: 5000 MiniBatchSize: 128 DataAugmentation: [1x1 imageDataAugmenter] ColorPreprocessing: 'none' OutputSize: [28 28] OutputSizeMode: 'resize' DispatchInBackground: 0
컨벌루션 신경망 아키텍처를 지정합니다.
layers = [ imageInputLayer([28 28 1]) convolution2dLayer(3,16,'Padding',1) batchNormalizationLayer reluLayer maxPooling2dLayer(2,'Stride',2) convolution2dLayer(3,32,'Padding',1) batchNormalizationLayer reluLayer maxPooling2dLayer(2,'Stride',2) convolution2dLayer(3,64,'Padding',1) batchNormalizationLayer reluLayer fullyConnectedLayer(10) softmaxLayer classificationLayer];
모멘텀을 사용한 확률적 경사하강법의 훈련 옵션을 설정합니다.
opts = trainingOptions('sgdm', ... 'MaxEpochs',10, ... 'Shuffle','every-epoch', ... 'InitialLearnRate',1e-3);
신경망을 훈련시킵니다.
net = trainNetwork(auimds,layers,opts);
Training on single CPU. Initializing image normalization. |========================================================================================| | Epoch | Iteration | Time Elapsed | Mini-batch | Mini-batch | Base Learning | | | | (hh:mm:ss) | Accuracy | Loss | Rate | |========================================================================================| | 1 | 1 | 00:00:01 | 7.81% | 2.4151 | 0.0010 | | 2 | 50 | 00:00:23 | 52.34% | 1.4930 | 0.0010 | | 3 | 100 | 00:00:44 | 74.22% | 1.0148 | 0.0010 | | 4 | 150 | 00:01:05 | 78.13% | 0.8153 | 0.0010 | | 6 | 200 | 00:01:26 | 76.56% | 0.6903 | 0.0010 | | 7 | 250 | 00:01:45 | 87.50% | 0.4891 | 0.0010 | | 8 | 300 | 00:02:06 | 87.50% | 0.4874 | 0.0010 | | 9 | 350 | 00:02:30 | 87.50% | 0.4866 | 0.0010 | | 10 | 390 | 00:02:46 | 89.06% | 0.4021 | 0.0010 | |========================================================================================|
입력 인수
outputSize
— 출력 영상의 크기
2개의 양의 정수로 구성된 벡터
출력 영상의 크기로, 2개의 양의 정수로 구성된 벡터로 지정됩니다. 첫 번째 요소는 출력 영상의 행 개수를 지정하고, 두 번째 요소는 열 개수를 지정합니다. 이 값은 반환되는 증대 영상 데이터저장소 auimds
의 OutputSize
속성을 설정합니다.
imds
— 영상 데이터저장소
ImageDatastore
객체
영상 데이터저장소로, ImageDatastore
객체로 지정됩니다.
X
— 영상
4차원 숫자형 배열
영상으로, 4차원 숫자형 배열로 지정됩니다. 처음 3개의 차원은 높이, 너비, 채널이고, 마지막 차원은 개별 영상의 인덱스입니다.
데이터형: single
| double
| uint8
| int8
| uint16
| int16
| uint32
| int32
Y
— 분류 또는 회귀에 대한 응답 변수
categorical형 응답 변수로 구성된 배열 | 숫자형 행렬 | 4차원 숫자형 배열
분류 또는 회귀에 대한 응답 변수로, 다음 중 하나로 지정됩니다.
분류 문제의 경우,
Y
는 영상 레이블로 구성된 categorical형 벡터입니다.회귀 문제의 경우,
Y
는 다음이 될 수 있습니다.n×r 숫자형 행렬. n은 관측값의 개수이고 r은 응답 변수의 개수입니다.
h×w×c×n 숫자형 배열. h×w×c는 응답 변수 하나의 크기이고 n은 관측값의 개수입니다.
응답 변수는 NaN
을 포함해서는 안 됩니다.
데이터형: categorical
| double
tbl
— 입력 데이터
table
입력 데이터로, 테이블로 지정됩니다. tbl
은 첫 번째 열에 예측 변수를 절대 영상 경로나 상대 영상 경로, 또는 영상으로 포함해야 합니다. 응답 변수의 유형과 위치는 문제에 따라 달라집니다.
분류 문제의 경우, 응답 변수는 영상에 대한 레이블을 포함하는 categorical형 변수여야 합니다.
augmentedImageSource
함수를 호출할 때 응답 변수의 이름을 지정하지 않는다면 두 번째 열에 응답 변수가 있어야 합니다. 응답 변수가tbl
의 다른 열에 있다면responseNames
인수를 사용하여 응답 변수 이름을 지정해야 합니다.회귀 문제의 경우, 응답 변수는 첫 번째 열 뒤에 오는 열(들)에 있는 숫자형 값이어야 합니다. 응답 변수는 스칼라 유형으로 여러 열에 있거나, 숫자형 벡터나 3차원 숫자형 배열로 구성된 셀형 배열로 하나의 열에 있을 수 있습니다. 응답 변수의 이름을 지정하지 않으면
augmentedImageSource
는tbl
의 나머지 열을 응답 변수로 받습니다.responseNames
인수를 사용하여 응답 변수 이름을 지정할 수 있습니다.
응답 변수는 NaN
값을 포함해서는 안 됩니다. 예측 변수 데이터에 NaN
이 포함되어 있으면 이 값은 훈련 끝까지 전파되지만, 대부분의 경우 훈련이 수렴하지 않습니다.
데이터형: table
responseNames
— 입력 테이블에 있는 응답 변수의 이름
문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | string형 배열
입력 테이블에 있는 응답 변수의 이름으로, 다음 중 하나로 지정됩니다.
단일 응답 변수를 갖는 분류 또는 회귀 작업의 경우,
responseNames
는 입력 테이블의 응답 변수를 포함하는 문자형 벡터 또는 string형 스칼라여야 합니다.여러 응답 변수를 갖는 회귀 작업의 경우,
responseNames
는 입력 테이블의 응답 변수를 포함하는 string형 배열 또는 문자형 벡터로 구성된 셀형 배열이어야 합니다.
데이터형: char
| cell
| string
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: augmentedImageSource([28,28],myTable,'OutputSizeMode','centercrop')
은 영상을 중앙에서 자르도록 OutputSizeMode
속성을 설정하는 증대 영상 데이터저장소를 만듭니다.
ColorPreprocessing
— 색 전처리 연산
'none'
(디폴트 값) | 'gray2rgb'
| 'rgb2gray'
입력 영상의 색 채널에 수행되는 전처리 연산으로, 'ColorPreprocessing'
과 함께 'none'
, 'gray2rgb'
또는 'rgb2gray'
가 쉼표로 구분되어 지정됩니다. 이 인수는 반환되는 증대 영상 데이터저장소 auimds
의 ColorPreprocessing
속성을 설정합니다. ColorPreprocessing
속성은 증대 영상 데이터저장소의 모든 출력 영상이 inputImageLayer
가 요구하는 색 채널 개수를 갖도록 합니다.
DataAugmentation
— 입력 영상에 적용할 전처리
'none'
(디폴트 값) | imageDataAugmenter
객체
입력 영상에 적용할 전처리로, 'DataAugmentation'
과 함께 imageDataAugmenter
객체 또는 'none'
이 쉼표로 구분되어 지정됩니다. 이 인수는 반환되는 증대 영상 데이터저장소 auimds
의 DataAugmentation
속성을 설정합니다. DataAugmentation
이 'none'
인 경우, 입력 영상에 전처리가 적용되지 않습니다.
OutputSizeMode
— 출력 영상 크기 조정에 사용할 메서드
'resize'
(디폴트 값) | 'centercrop'
| 'randcrop'
출력 영상 크기 조정에 사용할 메서드로, 'OutputSizeMode'
와 함께 다음 중 하나가 쉼표로 구분되어 지정됩니다. 이 인수는 반환되는 증대 영상 데이터저장소 auimds
의 OutputSizeMode
속성을 설정합니다.
'resize'
— 출력 크기에 맞도록 영상을 스케일링합니다. 자세한 내용은imresize
항목을 참조하십시오.'centercrop'
— 훈련 영상의 중앙에서 자르기를 수행합니다. 자르기의 크기는 출력 크기와 같습니다.'randcrop'
— 훈련 영상에서 무작위 자르기를 수행합니다. 무작위 자르기의 크기는 출력 크기와 같습니다.
데이터형: char
| string
BackgroundExecution
— 병렬 증대 수행 여부
false
(디폴트 값) | true
병렬 증대 수행 여부로, 'BackgroundExecution'
과 함께 false
또는 true
가 쉼표로 구분되어 지정됩니다. 이 인수는 반환되는 증대 영상 데이터저장소 auimds
의 DispatchInBackground
속성을 설정합니다. 'BackgroundExecution'
이 true
이고 Parallel Computing Toolbox™가 설치되어 있는 경우, 증대 영상 데이터저장소 auimds
는 영상 증대를 병렬로 수행합니다.
출력 인수
auimds
— 증대 영상 데이터저장소
augmentedImageDatastore
객체
증대 영상 데이터저장소로, augmentedImageDatastore
객체로 반환됩니다.
버전 내역
R2017b에 개발됨R2018a: augmentedImageSource
객체 제거됨
R2017b에서는 딥러닝 신경망 훈련을 위해 augmentedImageSource
객체를 만들어 영상을 전처리할 수 있었습니다. R2018a부터 augmentedImageSource
객체가 제거되었습니다. 대신 augmentedImageDatastore
객체를 사용하십시오.
augmentedImageDatastore
에는 데이터 전처리를 도와주는 추가적인 속성과 메서드가 있습니다. 훈련을 위해서만 사용할 수 있었던 augmentedImageSource
와 달리 augmentedImageDatastore
는 훈련과 예측 둘 다를 위해 사용할 수 있습니다.
augmentedImageDatastore
객체를 만들기 위해 augmentedImageDatastore
함수(권장) 또는 augmentedImageSource
함수를 사용할 수 있습니다.
R2018a: augmentedImageSource
함수 제거 예정
augmentedImageSource
함수는 향후 릴리스에서 제거될 예정입니다. 대신 augmentedImageDatastore
함수를 사용하여 augmentedImageDatastore
객체를 만드십시오.
코드를 업데이트하려면 함수 이름 augmentedImageSource
를 augmentedImageDatastore
로 변경하십시오. 입력 인수는 변경할 필요가 없습니다.
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)