이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
featureInputLayer
설명
특징 입력 계층은 신경망에 특징 데이터를 입력하고 데이터 정규화를 적용합니다. 특징을 나타내는, 숫자형 스칼라로 구성된 데이터 세트(공간 차원 또는 시간 차원이 없는 데이터)가 있는 경우 이 계층을 사용하십시오.
영상 입력의 경우 imageInputLayer
를 사용하십시오.
생성
속성
특징 입력값
InputSize
— 특징 개수
양의 정수
Normalization
— 데이터 정규화
'none'
(디폴트 값) | 'zerocenter'
| 'zscore'
| 'rescale-symmetric'
| 'rescale-zero-one'
| 함수 핸들
데이터가 입력 계층을 통과하여 순방향으로 전파될 때마다 적용할 데이터 정규화로, 다음 중 하나로 지정됩니다.
'zerocenter'
—Mean
으로 지정된 평균값을 뺍니다.'zscore'
—Mean
으로 지정된 평균값을 빼고StandardDeviation
으로 나눕니다.'rescale-symmetric'
—Min
으로 지정된 최솟값과Max
로 지정된 최댓값을 사용하여 입력값이 [-1, 1] 범위 내에 오도록 다시 스케일링합니다.'rescale-zero-one'
—Min
으로 지정된 최솟값과Max
로 지정된 최댓값을 사용하여 입력값이 [0, 1] 범위 내에 오도록 다시 스케일링합니다.'none'
— 입력 데이터를 정규화하지 않습니다.함수 핸들 — 지정된 함수를 사용하여 데이터를 정규화합니다. 함수는
Y = func(X)
형식이 되어야 합니다. 여기서X
는 입력 데이터이고 출력값Y
는 정규화된 데이터입니다.
팁
소프트웨어는 기본적으로 trainNetwork
함수를 사용할 때 자동으로 정규화 통계량을 계산합니다. 훈련 중에 시간을 절약하려면 정규화에 필요한 통계량을 지정하고 trainingOptions
의 ResetInputNormalization
을 0
(fasle
)으로 설정하십시오.
NormalizationDimension
— 정규화 차원
'auto'
(디폴트 값) | 'channel'
| 'all'
정규화 차원으로, 다음 중 하나로 지정됩니다.
'auto'
– 훈련 옵션이false
이고 정규화 통계량 중 하나(Mean
,StandardDeviation
,Min
또는Max
)를 지정한 경우, 통계량과 일치하는 차원에 대해 정규화합니다. 그렇지 않은 경우, 훈련 시점에 통계량을 다시 계산하고 채널별 정규화를 적용합니다.'channel'
– 채널별 정규화.'all'
– 스칼라 통계량을 사용하여 모든 값을 정규화합니다.
Mean
— 중심 0 및 z-점수 정규화에서의 평균값
[]
(디폴트 값) | 열 벡터 | 숫자형 스칼라
중심 0 및 z-점수 정규화에서의 평균값으로, 특징당 평균값으로 구성된 numFeatures
×1 벡터, 숫자형 스칼라 또는 []
로 지정됩니다.
Mean
속성을 지정한 경우 Normalization
은 'zerocenter'
또는 'zscore'
여야 합니다. Mean
이 []
인 경우 trainNetwork
함수는 평균값을 계산합니다. 사용자 지정 훈련 루프를 사용하여 dlnetwork
객체를 훈련시키려면, 또는 assembleNetwork
함수를 사용하여 훈련 없이 신경망을 조합하려면 Mean
속성을 숫자형 스칼라 또는 숫자형 배열로 설정해야 합니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
StandardDeviation
— z-점수 정규화의 표준편차
[]
(디폴트 값) | 열 벡터 | 숫자형 스칼라
z-점수 정규화에 사용되는 표준편차로, 특징당 평균값으로 구성된 numFeatures
×1 벡터, 숫자형 스칼라 또는 []
로 지정됩니다.
StandardDeviation
속성을 지정한 경우 Normalization
은 'zscore'
여야 합니다. StandardDeviation
이 []
인 경우 trainNetwork
함수는 표준편차를 계산합니다. 사용자 지정 훈련 루프를 사용하여 dlnetwork
객체를 훈련시키려면, 또는 assembleNetwork
함수를 사용하여 훈련 없이 신경망을 조합하려면 StandardDeviation
속성을 숫자형 스칼라 또는 숫자형 배열로 설정해야 합니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Min
— 다시 스케일링하기 위한 최솟값
[]
(디폴트 값) | 열 벡터 | 숫자형 스칼라
다시 스케일링하기 위한 최솟값으로, 특징당 최솟값으로 구성된 numFeatures
×1 벡터, 숫자형 스칼라 또는 []
로 지정됩니다.
Min
속성을 지정한 경우 Normalization
은 'rescale-symmetric'
또는 'rescale-zero-one'
이어야 합니다. Min
이 []
인 경우 trainNetwork
함수는 국소 최솟값을 계산합니다. 사용자 지정 훈련 루프를 사용하여 dlnetwork
객체를 훈련시키려면, 또는 assembleNetwork
함수를 사용하여 훈련 없이 신경망을 조합하려면 Min
속성을 숫자형 스칼라 또는 숫자형 배열로 설정해야 합니다.
데이터형: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Max
— 다시 스케일링하기 위한 최댓값
[]
(디폴트 값) | 열 벡터 | 숫자형 스칼라
다시 스케일링하기 위한 최댓값으로, 특징당 최댓값으로 구성된 numFeatures
×1 벡터, 숫자형 스칼라 또는 []
로 지정됩니다.
Max
속성을 지정한 경우 Normalization
은 'rescale-symmetric'
또는 'rescale-zero-one'
이어야 합니다. Max
가 []
인 경우 trainNetwork
함수는 국소 최댓값을 계산합니다. 사용자 지정 훈련 루프를 사용하여 dlnetwork
객체를 훈련시키려면, 또는 assembleNetwork
함수를 사용하여 훈련 없이 신경망을 조합하려면 Max
속성을 숫자형 스칼라 또는 숫자형 배열로 설정해야 합니다.
데이터형: 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
옵션이 1
이어야 합니다.
복소수 값 데이터를 갖는 신경망을 훈련시키는 방법을 보여주는 예제는 Train Network with Complex-Valued Data 항목을 참조하십시오.
계층
Name
— 계층 이름
''
(디폴트 값) | 문자형 벡터 | string형 스칼라
계층 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. Layer
배열 입력값에 대해 trainNetwork
, assembleNetwork
, layerGraph
, dlnetwork
함수는 이름이 ''
인 계층에 자동으로 이름을 할당합니다.
데이터형: char
| string
NumInputs
— 입력값의 개수
0 (디폴트 값)
읽기 전용 속성입니다.
계층의 입력값 개수. 이 계층에는 입력값이 없습니다.
데이터형: double
InputNames
— 입력값 이름
{}
(디폴트 값)
읽기 전용 속성입니다.
계층의 입력값 이름. 이 계층에는 입력값이 없습니다.
데이터형: cell
NumOutputs
— 출력값 개수
1
(디폴트 값)
읽기 전용 속성입니다.
계층의 출력값 개수. 이 계층은 단일 출력값만 가집니다.
데이터형: double
OutputNames
— 출력값 이름
{'out'}
(디폴트 값)
읽기 전용 속성입니다.
계층의 출력값 이름. 이 계층은 단일 출력값만 가집니다.
데이터형: cell
예제
특징 입력 계층 만들기
이름이 'input'
이고 21개의 특징으로 구성된 관측값을 갖는 특징 입력 계층을 만듭니다.
layer = featureInputLayer(21,'Name','input')
layer = FeatureInputLayer with properties: Name: 'input' InputSize: 21 SplitComplexInputs: 0 Hyperparameters Normalization: 'none' NormalizationDimension: 'auto'
Layer
배열에 특징 입력 계층을 포함시킵니다.
numFeatures = 21; numClasses = 3; layers = [ featureInputLayer(numFeatures,'Name','input') fullyConnectedLayer(numClasses, 'Name','fc') softmaxLayer('Name','sm') classificationLayer('Name','classification')]
layers = 4x1 Layer array with layers: 1 'input' Feature Input 21 features 2 'fc' Fully Connected 3 fully connected layer 3 'sm' Softmax softmax 4 'classification' Classification Output crossentropyex
영상 입력 계층과 특징 입력 계층 결합하기
영상 입력 계층과 특징 입력 계층을 모두 포함하는 신경망을 훈련시키려면 사용자 지정 훈련 루프에서 dlnetwork
객체를 사용해야 합니다.
입력 영상의 크기, 각 관측값의 특징 개수, 클래스 개수, 컨벌루션 계층의 필터 크기와 개수를 정의합니다.
imageInputSize = [28 28 1]; numFeatures = 1; numClasses = 10; filterSize = 5; numFilters = 16;
두 개의 입력 계층이 있는 신경망을 만들려면 신경망을 두 부분으로 정의한 다음 두 부분을 합쳐야 합니다. 예를 들어 결합 계층을 사용할 수 있습니다.
신경망의 첫 번째 부분을 정의합니다. 영상 분류 계층을 정의하고 마지막 완전 연결 계층 앞에 평탄화 계층과 결합 계층을 포함합니다.
layers = [ imageInputLayer(imageInputSize,'Normalization','none','Name','images') convolution2dLayer(filterSize,numFilters,'Name','conv') reluLayer('Name','relu') fullyConnectedLayer(50,'Name','fc1') flattenLayer('name','flatten') concatenationLayer(1,2,'Name','concat') fullyConnectedLayer(numClasses,'Name','fc2') softmaxLayer('Name','softmax')];
계층을 계층 그래프로 변환합니다.
lgraph = layerGraph(layers);
신경망의 두 번째 부분에서는 특징 입력 계층을 추가하고 이를 결합 계층의 두 번째 입력에 연결합니다.
featInput = featureInputLayer(numFeatures,'Name','features'); lgraph = addLayers(lgraph, featInput); lgraph = connectLayers(lgraph, 'features', 'concat/in2');
신경망을 시각화합니다.
plot(lgraph)
dlnetwork
객체를 만듭니다.
dlnet = dlnetwork(lgraph)
dlnet = dlnetwork with properties: Layers: [9x1 nnet.cnn.layer.Layer] Connections: [8x2 table] Learnables: [6x3 table] State: [0x3 table] InputNames: {'images' 'features'} OutputNames: {'softmax'} Initialized: 1 View summary with summary.
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
코드 생성 시 복소수 입력값은 지원되지 않으며
'SplitComplexInputs'
옵션도 지원되지 않습니다.
GPU 코드 생성
GPU Coder™를 사용하여 NVIDIA® GPU용 CUDA® 코드를 생성할 수 있습니다.
GPU Coder™를 사용하여 CUDA® 또는 C++ 코드를 생성하려면 먼저 심층 신경망을 생성하고 훈련시켜야 합니다. 신경망이 훈련되고 평가된 후에는 코드를 생성하고 NVIDIA® 또는 ARM® GPU 프로세서를 사용하는 플랫폼에 컨벌루션 신경망을 배포하도록 코드 생성기를 구성할 수 있습니다. 자세한 내용은 Deep Learning with GPU Coder (GPU Coder) 항목을 참조하십시오.
코드 생성 시 복소수 입력값은 지원되지 않으며
'SplitComplexInputs'
옵션도 지원되지 않습니다.
버전 내역
R2020b에 개발됨
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)