이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
imageInputLayer
영상 입력 계층
생성
설명
는 영상 입력 계층을 반환하고 layer
= imageInputLayer(inputSize
)InputSize
속성을 지정합니다.
는 하나 이상의 이름-값 인수를 사용하여 선택적으로 layer
= imageInputLayer(inputSize
,Name=Value
)Normalization
, NormalizationDimension
, Mean
, StandardDeviation
, Min
, Max
, SplitComplexInputs
, Name
속성을 설정합니다.
속성
영상 입력
InputSize
— 입력 크기
정수로 이루어진 행 벡터
읽기 전용 속성입니다.
입력 데이터의 크기로, 정수로 이루어진 행 벡터 [h w c]
로 지정됩니다. 여기서 h
, w
, c
는 각각 높이, 너비, 채널 개수입니다.
회색조 영상의 경우
c
가1
인 벡터를 지정하십시오.RGB 영상의 경우
c
가3
인 벡터를 지정하십시오.다중분광 영상이나 초분광 영상의 경우
c
가 채널 개수인 벡터를 지정하십시오.
3차원 영상이나 볼륨 입력의 경우 image3dInputLayer
를 사용하십시오.
Normalization
— 데이터 정규화
"zerocenter"
(디폴트 값) | "zscore"
| "rescale-symmetric"
| "rescale-zero-one"
| "none"
| 함수 핸들
읽기 전용 속성입니다.
데이터가 입력 계층을 통과하여 순방향으로 전파될 때마다 적용할 데이터 정규화로, 다음 중 하나로 지정됩니다.
"zerocenter"
—Mean
으로 지정된 평균값을 뺍니다."zscore"
—Mean
으로 지정된 평균값을 빼고StandardDeviation
으로 나눕니다."rescale-symmetric"
—Min
으로 지정된 최솟값과Max
로 지정된 최댓값을 사용하여 입력값이 [-1, 1] 범위 내에 오도록 다시 스케일링합니다."rescale-zero-one"
—Min
으로 지정된 최솟값과Max
로 지정된 최댓값을 사용하여 입력값이 [0, 1] 범위 내에 오도록 다시 스케일링합니다."none"
— 입력 데이터를 정규화하지 않습니다.함수 핸들 — 지정된 함수를 사용하여 데이터를 정규화합니다. 함수는
Y = f(X)
형식이 되어야 합니다. 여기서X
는 입력 데이터이고 출력값Y
는 정규화된 데이터입니다.
입력 데이터가 복소수 값이고 SplitComplexInputs
옵션이 0
(false
)인 경우 Normalization
옵션은 "zerocenter"
, "zscore"
, "none"
또는 함수 핸들이어야 합니다. (R2024a 이후)
R2024a 이전: 복소수 값 데이터를 신경망에 입력하려면 SplitComplexInputs
옵션이 1
(true
)이어야 합니다.
팁
기본적으로 trainnet
함수를 사용할 때 자동으로 정규화 통계량이 계산됩니다. 훈련 중에 시간을 절약하려면 정규화에 필요한 통계량을 지정하고 trainingOptions
의 ResetInputNormalization
옵션을 0
(false
)으로 설정하십시오.
ImageInputLayer
객체는 이 속성을 문자형 벡터 또는 함수 핸들로 저장합니다.
NormalizationDimension
— 정규화 차원
"auto"
(디폴트 값) | "channel"
| "element"
| "all"
정규화 차원으로, 다음 중 하나로 지정됩니다.
"auto"
– 훈련 옵션이0
(false
)이고 정규화 통계량 중 하나(Mean
,StandardDeviation
,Min
또는Max
)를 지정한 경우, 통계량과 일치하는 차원에 대해 정규화합니다. 그렇지 않은 경우, 훈련 시점에 통계량을 다시 계산하고 채널별 정규화를 적용합니다."channel"
– 채널별 정규화."element"
– 요소별 정규화."all"
– 스칼라 통계량을 사용하여 모든 값을 정규화합니다.
ImageInputLayer
객체는 이 속성을 문자형 벡터로 저장합니다.
Mean
— 중심 0 및 z-점수 정규화에서의 평균값
[]
(디폴트 값) | 3차원 배열 | 숫자형 스칼라
중심 0 및 z-점수 정규화에서의 평균값으로, h×w×c 배열, 채널당 평균값으로 구성된 1×1×c 배열, 숫자형 스칼라 또는 []
로 지정됩니다. 여기서 h, w, c는 각각 평균값의 높이, 너비, 채널 개수입니다.
Mean
속성을 지정하려면 Normalization
속성이 "zerocenter"
또는 "zscore"
이어야 합니다. Mean
이 []
이면 훈련 시점이나 초기화 시점에 속성이 자동으로 설정됩니다.
trainnet
함수는 훈련 데이터를 사용하여 평균을 계산하고 결과 값을 사용합니다.initialize
함수와dlnetwork
함수는Initialize
옵션이1
(true
)인 경우 속성을0
으로 설정합니다.
Mean
은 복소수 값일 수 있습니다. (R2024a 이후) Mean
이 복소수 값이면 SplitComplexInputs
옵션은 0
(false
)이어야 합니다.
R2024a 이전: SplitComplexInputs
옵션을 1
(true
)로 설정하여 평균을 실수부와 허수부로 분할하고 입력 데이터를 실수부와 허수부로 분할하도록 설정할 수 있습니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
복소수 지원 여부: 예
StandardDeviation
— z-점수 정규화의 표준편차
[]
(디폴트 값) | 3차원 배열 | 숫자형 스칼라
z-점수 정규화에서의 표준편차로, h×w×c 배열, 채널당 평균값으로 구성된 1×1×c 배열, 숫자형 스칼라 또는 []
로 지정됩니다. 여기서 h, w, c는 각각 표준편차의 높이, 너비, 채널 개수입니다.
StandardDeviation
속성을 지정하려면 Normalization
속성이 "zscore"
이어야 합니다. StandardDeviation
이 []
이면 훈련 시점이나 초기화 시점에 속성이 자동으로 설정됩니다.
trainnet
함수는 훈련 데이터를 사용하여 표준편차를 계산하고 결과 값을 사용합니다.initialize
함수와dlnetwork
함수는Initialize
옵션이1
(true
)인 경우 속성을1
로 설정합니다.
StandardDeviation
은 복소수 값일 수 있습니다. (R2024a 이후) StandardDeviation
이 복소수 값이면 SplitComplexInputs
옵션은 0
(false
)이어야 합니다.
R2024a 이전: SplitComplexInputs
옵션을 1
(true
)로 설정하여 표준편차를 실수부와 허수부로 분할하고 입력 데이터를 실수부와 허수부로 분할하도록 설정할 수 있습니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
복소수 지원 여부: 예
Min
— 다시 스케일링하기 위한 최솟값
[]
(디폴트 값) | 3차원 배열 | 숫자형 스칼라
다시 스케일링하기 위한 최솟값으로, h×w×c 배열, 채널당 국소 최솟값으로 구성된 1×1×c 배열, 숫자형 스칼라 또는 []
로 지정됩니다. 여기서 h, w, c는 각각 국소 최솟값의 높이, 너비, 채널 개수입니다.
Min
속성을 지정하려면 Normalization
이 "rescale-symmetric"
또는 "rescale-zero-one"
이어야 합니다. Min
이 []
이면 훈련 시점이나 초기화 시점에 속성이 자동으로 설정됩니다.
trainnet
함수는 훈련 데이터를 사용하여 최솟값을 계산하고 결과 값을 사용합니다.Initialize
옵션이1
(true
)인 경우initialize
함수와dlnetwork
함수는Normalization
이"rescale-symmetric"
및"rescale-zero-one"
일 때 속성을 각각-1
및0
으로 설정합니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Max
— 다시 스케일링하기 위한 최댓값
[]
(디폴트 값) | 3차원 배열 | 숫자형 스칼라
다시 스케일링하기 위한 최댓값으로, h×w×c 배열, 채널당 국소 최댓값으로 구성된 1×1×c 배열, 숫자형 스칼라 또는 []
로 지정됩니다. 여기서 h, w, c는 각각 국소 최댓값의 높이, 너비, 채널 개수입니다.
Max
속성을 지정하려면 Normalization
이 "rescale-symmetric"
또는 "rescale-zero-one"
이어야 합니다. Max
이 []
이면 훈련 시점이나 초기화 시점에 속성이 자동으로 설정됩니다.
trainnet
함수는 훈련 데이터를 사용하여 최댓값을 계산하고 결과 값을 사용합니다.initialize
함수와dlnetwork
함수는Initialize
옵션이1
(true
)인 경우 속성을1
로 설정합니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
SplitComplexInputs
— 입력 데이터를 실수부와 허수부로 분할하는 플래그
0
(false
) (디폴트 값) | 1
(true
)
읽기 전용 속성입니다.
입력 데이터를 실수부와 허수부로 분할하는 플래그로, 다음 값 중 하나로 지정됩니다.
0
(false
) – 입력 데이터를 분할하지 않습니다.1
(true
) – 데이터를 실수부와 허수부로 분할합니다.
SplitComplexInputs
가 1
인 경우 계층은 입력 데이터보다 두 배 많은 수의 채널을 출력합니다. 예를 들어, 입력 데이터가 numChannels
개의 채널을 갖는 복소수 값이면 계층은 2*numChannels
개의 채널을 갖는 데이터를 출력합니다. 이때 채널 1
부터 numChannels
는 입력 데이터의 실수부를 포함하고 numChannels+1
부터 2*numChannels
는 입력 데이터의 허수부를 포함합니다. 입력 데이터가 실수인 경우 채널 numChannels+1
부터 2*numChannels
이 모두 0입니다.
입력 데이터가 복소수 값이고 SplitComplexInputs
가 0
(false
)인 경우, 계층은 복소수 값을 갖는 데이터를 다음 계층에 전달합니다. (R2024a 이후)
R2024a 이전: 복소수 값 데이터를 신경망에 입력하려면 입력 계층의 SplitComplexInputs
옵션이 1
(true
)이어야 합니다.
복소수 값 데이터를 갖는 신경망을 훈련시키는 방법을 보여주는 예제는 Train Network with Complex-Valued Data 항목을 참조하십시오.
계층
NumInputs
— 입력값의 개수
0 (디폴트 값)
읽기 전용 속성입니다.
계층의 입력값 개수. 이 계층에는 입력값이 없습니다.
데이터형: double
InputNames
— 입력값 이름
{}
(디폴트 값)
읽기 전용 속성입니다.
계층의 입력값 이름. 이 계층에는 입력값이 없습니다.
데이터형: cell
NumOutputs
— 출력값 개수
1
(디폴트 값)
읽기 전용 속성입니다.
계층의 출력값 개수로, 1
로 반환됩니다. 이 계층은 단일 출력값만 가집니다.
데이터형: double
OutputNames
— 출력값 이름
{'out'}
(디폴트 값)
읽기 전용 속성입니다.
출력값 이름으로, {'out'}
으로 반환됩니다. 이 계층은 단일 출력값만 가집니다.
데이터형: cell
예제
영상 입력 계층 만들기
28×28 컬러 영상에 대해 영상 입력 계층을 만듭니다.
inputlayer = imageInputLayer([28 28 3])
inputlayer = ImageInputLayer with properties: Name: '' InputSize: [28 28 3] SplitComplexInputs: 0 Hyperparameters DataAugmentation: 'none' Normalization: 'zerocenter' NormalizationDimension: 'auto' Mean: []
Layer
배열에 영상 입력 계층을 포함시킵니다.
layers = [ imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,Stride=2) fullyConnectedLayer(10) softmaxLayer]
layers = 6x1 Layer array with layers: 1 '' Image Input 28x28x1 images with 'zerocenter' normalization 2 '' 2-D Convolution 20 5x5 convolutions with stride [1 1] and padding [0 0 0 0] 3 '' ReLU ReLU 4 '' 2-D Max Pooling 2x2 max pooling with stride [2 2] and padding [0 0 0 0] 5 '' Fully Connected 10 fully connected layer 6 '' Softmax softmax
알고리즘
계층 출력 형식
계층 배열 또는 계층 그래프의 계층은 뒤에 오는 계층에 데이터를 전달할 때 형식이 지정된 dlarray
객체로 전달합니다. dlarray
객체의 형식은 문자들로 구성된 문자열로, 각 문자는 데이터의 대응되는 차원을 설명합니다. 형식은 다음 문자 중 하나 이상으로 구성됩니다.
"S"
— 공간"C"
— 채널"B"
— 배치"T"
— 시간"U"
— 지정되지 않음
4차원 배열로 표현되는 2차원 영상 데이터를 예로 들면 처음 2개 차원은 영상의 공간 차원, 3번째 차원은 영상의 채널, 4번째 차원은 배치 차원에 대응되며, "SSCB"
(공간, 공간, 채널, 배치) 형식으로 설명될 수 있습니다.
신경망의 입력 계층은 신경망에 필요한 데이터의 레이아웃을 지정합니다. 다른 레이아웃의 데이터를 가지고 있다면 InputDataFormats
훈련 옵션을 사용하여 레이아웃을 지정하십시오.
계층은 h×w×c×N 배열을 신경망에 입력합니다. 여기서 h, w, c는 각각 영상의 높이, 너비, 채널 개수이고 N은 영상 개수입니다. 이 레이아웃의 데이터는 "SSCB"
(공간, 공간, 채널, 배치) 데이터 형식을 갖습니다.
복소수
신경망에 대한 입력이 복소수 값인 경우, SplitComplexIputs
가 0
(false
)이면 계층은 뒤에 오는 계층에 복소수 값 데이터를 전달합니다. (R2024a 이후)
R2024a 이전: 복소수 값 데이터를 신경망에 입력하려면 입력 계층의 SplitComplexInputs
옵션이 1
(true
)이어야 합니다.
입력 데이터가 복소수 값이고 SplitComplexInputs
옵션이 0
(false
)인 경우 Normalization
옵션은 "zerocenter"
, "zscore"
, "none"
또는 함수 핸들이어야 합니다. 계층의 Mean
속성과 StandardDeviation
속성은 정규화 옵션이 "zerocenter"
및 "zscore"
인 경우 복소수 값 데이터도 지원합니다.
복소수 값 데이터를 갖는 신경망을 훈련시키는 방법을 보여주는 예제는 Train Network with Complex-Valued Data 항목을 참조하십시오.
참고 문헌
[1] Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. "ImageNet Classification with Deep Convolutional Neural Networks." Communications of the ACM 60, no. 6 (May 24, 2017): 84–90. https://doi.org/10.1145/3065386
[2] Cireşan, D., U. Meier, J. Schmidhuber. "Multi-column Deep Neural Networks for Image Classification". IEEE Conference on Computer Vision and Pattern Recognition, 2012.
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
코드 생성 시 함수 핸들을 사용하여 지정된
Normalization
은 지원되지 않습니다.코드 생성 시 복소수 입력값은 지원되지 않으며
SplitComplexInputs
옵션도 지원되지 않습니다.
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
코드 생성 시 함수 핸들을 사용하여 지정된
Normalization
은 지원되지 않습니다.코드 생성 시 복소수 입력값은 지원되지 않으며
SplitComplexInputs
옵션도 지원되지 않습니다.
버전 내역
R2016a에 개발됨R2024a: 복소수 값 출력
신경망에 대한 입력이 복소수 값인 경우, SplitComplexIputs
가 0
(false
)이면 계층은 뒤에 오는 계층에 복소수 값 데이터를 전달합니다.
입력 데이터가 복소수 값이고 SplitComplexInputs
옵션이 0
(false
)인 경우 Normalization
옵션은 "zerocenter"
, "zscore"
, "none"
또는 함수 핸들이어야 합니다. 계층의 Mean
속성과 StandardDeviation
속성은 정규화 옵션이 "zerocenter"
및 "zscore"
인 경우 복소수 값 데이터도 지원합니다.
R2019b: AverageImage
속성 제거 예정
AverageImage
는 제거될 예정입니다. Mean
을 대신 사용하십시오. AverageImage
를 모두 Mean
으로 바꾸어 코드를 업데이트하십시오. 속성 간에 차이가 없어 추가로 코드를 업데이트할 필요가 없습니다.
R2019b: imageInputLayer
와 image3dInputLayer
가 기본적으로 채널별 정규화 사용
R2019b부터, imageInputLayer
와 image3dInputLayer
가 기본적으로 채널별 정규화를 사용합니다. 이전 버전에서는 이들 계층이 요소별 정규화를 사용했습니다. 이 동작을 재현하려면 이들 계층의 NormalizationDimension
옵션을 'element'
로 설정하십시오.
R2018a: DataAugmentation
은 권장되지 않음
DataAugmentation
속성은 권장되지 않습니다. 자르기, 반사를 비롯한 기하 변환을 사용하여 영상을 전처리하려면 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)