Входной слой признака
Входной слой функций вводит данные функций в сеть и применяет нормализацию данных. Используйте этот слой, когда у вас есть набор данных из числовых скаляров, представляющих функции (данные без пространственных или временных размерностей).
Для входа изображений используйте imageInputLayer
.
возвращает входной слой функций и устанавливает layer
= featureInputLayer(numFeatures
)InputSize
свойство для заданного количества функций.
устанавливает необязательные свойства с помощью аргументов пары "имя-значение". Можно задать несколько аргументы пары "имя-значение". Заключайте каждое имя свойства в одинарные кавычки.layer
= featureInputLayer(numFeatures
,Name,Value
)
InputSize
- Количество функцийКоличество функций для каждого наблюдения в данных, заданное как положительное целое число.
Для входа изображений используйте imageInputLayer
.
Пример:
10
Normalization
- Нормализация данных'none'
(по умолчанию) | 'zscore'
| 'rescale-symmetric'
| 'rescale-zero-one'
| 'none'
| указатель на функциюНормализация данных для применения каждый раз, когда данные передаются вперед через слой входа, заданная как одно из следующего:
'zerocenter'
- Вычесть среднее значение, заданное как Mean
.
'zscore'
- Вычесть среднее значение, заданное как Mean
и разделите по StandardDeviation
.
'rescale-symmetric'
- Переформулируйте вход в области значений [-1, 1] с помощью минимального и максимального значений, заданных Min
и Max
, соответственно.
'rescale-zero-one'
- Переопределите вход в области значений [0, 1] с помощью минимального и максимального значений, заданных Min
и Max
, соответственно.
'none'
- Не нормализуйте входные данные.
указатель на функцию - Нормализуйте данные с помощью заданной функции. Функция должна иметь вид Y = func(X)
, где X
- входные данные и выходные Y
- нормированные данные.
Совет
По умолчанию программа автоматически вычисляет статистику нормализации во время обучения. Чтобы сэкономить время при обучении, укажите необходимую статистику для нормализации и установите 'ResetInputNormalization'
опция в trainingOptions
на false
.
NormalizationDimension
- Нормализационная размерность'auto'
(по умолчанию) | 'channel'
| 'all'
Нормализующая размерность, заданная как одно из следующего:
'auto'
- Если опция обучения false
и вы задаете любую из статистики нормализации (Mean
, StandardDeviation
, Min
, или Max
), затем нормализуйте по размерностям, соответствующим статистике. В противном случае пересчитайте статистику во время обучения и примените нормализацию по каналу.
'channel'
- Нормализация по каналам.
'all'
- Нормализуйте все значения с помощью скалярной статистики.
Mean
- Среднее значение для нормализации с нулевым центром и z-результатом[]
(по умолчанию) | вектор-столбец | числовой скалярСреднее значение для нормализации с нулевым центром и z-результатом, заданное как numFeatures
-by-1 вектор средств по признаку, числовой скаляр или []
.
Если вы задаете Mean
свойство, затем Normalization
должен быть 'zerocenter'
или 'zscore'
. Если Mean
является []
затем программное обеспечение вычисляет среднее значение во время обучения.
Можно задать это свойство при создании сетей без обучения (для примера, при сборке сетей с помощью assembleNetwork
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
StandardDeviation
- Стандартное отклонение для нормализации z-балла[]
(по умолчанию) | вектор-столбец | числовой скалярСтандартное отклонение для нормализации z-балла, заданное как numFeatures
-by-1 вектор средств по признаку, числовой скаляр или []
.
Если вы задаете StandardDeviation
свойство, затем Normalization
должен быть 'zscore'
. Если StandardDeviation
является []
затем программное обеспечение вычисляет стандартное отклонение во время обучения.
Можно задать это свойство при создании сетей без обучения (для примера, при сборке сетей с помощью assembleNetwork
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Min
- Минимальное значение для перемасштабирования[]
(по умолчанию) | вектор-столбец | числовой скалярМинимальное значение для перемасштабирования, заданное как numFeatures
-by-1 вектор минимумов на функцию, числовой скаляр или []
.
Если вы задаете Min
свойство, затем Normalization
должен быть 'rescale-symmetric'
или 'rescale-zero-one'
. Если Min
является []
, затем программное обеспечение вычисляет минимум во время обучения.
Можно задать это свойство при создании сетей без обучения (для примера, при сборке сетей с помощью assembleNetwork
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Max
- Максимальное значение для перемасштабирования[]
(по умолчанию) | вектор-столбец | числовой скалярМаксимальное значение для перемасштабирования, заданное как numFeatures
-by-1 вектор максимумов на функцию, числовой скаляр или []
.
Если вы задаете Max
свойство, затем Normalization
должен быть 'rescale-symmetric'
или 'rescale-zero-one'
. Если Max
является []
, затем программное обеспечение вычисляет максимум во время обучения.
Можно задать это свойство при создании сетей без обучения (для примера, при сборке сетей с помощью assembleNetwork
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Name
- Имя слоя''
(по умолчанию) | символьный вектор | строковый скаляр
Имя слоя, заданное как вектор символов или строковый скаляр. Чтобы включить слой в график слоев, необходимо задать непустое уникальное имя слоя. Если вы обучаете последовательную сеть с слоем и Name
установлено в ''
затем программа автоматически присваивает слою имя во время обучения.
Типы данных: char
| string
NumInputs
- Количество входовКоличество входов слоя. Слой не имеет входов.
Типы данных: double
InputNames
- Входные имена{}
(по умолчанию)Входные имена слоя. Слой не имеет входов.
Типы данных: cell
NumOutputs
- Количество выходовКоличество выходов слоя. Этот слой имеет только один выход.
Типы данных: double
OutputNames
- Выходные имена{'out'}
(по умолчанию)Выходные имена слоя. Этот слой имеет только один выход.
Типы данных: cell
Создайте входной слой функции с именем 'input'
для наблюдений, состоящих из 21 функции.
layer = featureInputLayer(21,'Name','input')
layer = FeatureInputLayer with properties: Name: 'input' InputSize: 21 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') 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: [8x1 nnet.cnn.layer.Layer] Connections: [7x2 table] Learnables: [6x3 table] State: [0x3 table] InputNames: {'images' 'features'} OutputNames: {'softmax'} Initialized: 1
Как сгенерировать CUDA® или Код С++ при помощи GPU Coder™, вы должны сначала создать и обучить глубокую нейронную сеть. После обучения и оценки сети можно сконфигурировать генератор кода, чтобы сгенерировать код и развернуть сверточную нейронную сеть на платформах, которые используют NVIDIA® или ARM® Графические процессоры. Для получения дополнительной информации смотрите Глубокое Обучение с GPU Coder (GPU Coder).
Deep Network Designer | dlnetwork
| fullyConnectedLayer
| image3dInputLayer
| imageInputLayer
| sequenceInputLayer
| trainNetwork
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.