Свойства входного слоя
Функция ввела входные данные о функции слоя к сети, и применяет нормализацию данных. Используйте этот слой, когда у вас будет набор данных числовых скаляров, представляющих функции (данные без пространственных или измерений времени).
Для входа изображений используйте 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
Стандартное отклонение
min
, или Max
), затем нормируйте по размерностям, совпадающим со статистикой. В противном случае повторно вычислите статистику в учебное время и примените мудрую каналом нормализацию.
'channel'
– Мудрая каналом нормализация.
'all'
– Нормируйте все значения с помощью скалярной статистики.
Mean
— Среднее значение для нулевого центра и нормализации z-счета[]
(значение по умолчанию) | вектор-столбец | числовой скалярСреднее значение для нулевого центра и нормализации z-счета в виде numFeatures
- 1 вектор из средних значений на функцию, числовой скаляр или []
.
Если вы задаете Mean
свойство, затем Normalization
должен быть 'zerocenter'
или 'zscore'
. Если Mean
[]
, затем программное обеспечение вычисляет среднее значение в учебное время.
Можно установить это свойство при создании сетей без обучения (например, при сборке использования сетей assembleNetwork
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
StandardDeviation
— Стандартное отклонение для нормализации z-счета[]
(значение по умолчанию) | вектор-столбец | числовой скалярСтандартное отклонение для нормализации z-счета в виде numFeatures
- 1 вектор из средних значений на функцию, числовой скаляр или []
.
Если вы задаете StandardDeviation
свойство, затем Normalization
должен быть 'zscore'
. Если StandardDeviation
[]
, затем программное обеспечение вычисляет стандартное отклонение в учебное время.
Можно установить это свойство при создании сетей без обучения (например, при сборке использования сетей assembleNetwork
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Min
— Минимальное значение для того, чтобы перемасштабировать[]
(значение по умолчанию) | вектор-столбец | числовой скалярМинимальное значение для того, чтобы перемасштабировать в виде numFeatures
- 1 вектор из минимумов на функцию, числовой скаляр или []
.
Если вы задаете Min
свойство, затем Normalization
должен быть 'rescale-symmetric'
или 'rescale-zero-one'
. Если Min
[]
, затем программное обеспечение вычисляет минимум в учебное время.
Можно установить это свойство при создании сетей без обучения (например, при сборке использования сетей assembleNetwork
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Max
— Максимальное значение для того, чтобы перемасштабировать[]
(значение по умолчанию) | вектор-столбец | числовой скалярМаксимальное значение для того, чтобы перемасштабировать в виде numFeatures
- 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® или процессоры GPU ARM®. Для получения дополнительной информации смотрите Глубокое обучение для GPU Coder (GPU Coder).
Deep Network Designer | dlnetwork
| fullyConnectedLayer
| image3dInputLayer
| imageInputLayer
| sequenceInputLayer
| trainNetwork
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.