Отобразите входной слой
Изображение ввело входные параметры слоя 2D изображения к сети, и применяет нормализацию данных.
Для 3-D входа изображений используйте image3dInputLayer
.
возвращает входной слой изображений и задает layer
= imageInputLayer(inputSize
)InputSize
свойство.
InputSize
— Размер входаРазмер входных данных, заданных как вектор-строка из целых чисел [h w c]
, где h
W
, и c
соответствуйте высоте, ширине и количеству каналов соответственно.
Для полутоновых изображений задайте вектор с c
равняйтесь 1
.
Для изображений RGB задайте вектор с c
равняйтесь 3
.
Для многоспектральных или гиперспектральных изображений задайте вектор с c
равняйтесь количеству каналов.
Для 3-D изображения или входа объема, используйте image3dInputLayer
.
Пример:
[224 224 3]
Normalization
— Нормализация данных'zerocenter'
(значение по умолчанию) | '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'
| 'element'
| 'all'
Размерность нормализации, заданная как одно из следующего:
'auto'
– Если опцией обучения является false
и вы задаете любые из статистических данных нормализации (Mean
Стандартное отклонение
min
, или Max
), затем нормируйте по размерностям, совпадающим со статистикой. В противном случае повторно вычислите статистику в учебное время и примените мудрую каналом нормализацию.
'channel'
– Мудрая каналом нормализация.
'element'
– Поэлементная нормализация.
'all'
– Нормируйте все значения с помощью скалярной статистики.
Mean
— Среднее значение для нулевого центра и нормализации z-счета[]
(значение по умолчанию) | трехмерный массив | числовой скалярСреднее значение для нулевого центра и нормализации z-счета, заданной как h-by-w-by-c массив, 1 1 c массивом средних значений на канал, числовой скаляр или []
, где h, w и c соответствуют высоте, ширине и количеству каналов среднего значения, соответственно.
Если вы задаете Mean
свойство, затем Normalization
должен быть 'zerocenter'
или 'zscore'
. Если Mean
[]
, затем программное обеспечение вычисляет среднее значение в учебное время.
Можно установить это свойство при создании сетей без обучения (например, при сборке сетей с помощью assembleNetwork
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
StandardDeviation
— Стандартное отклонение для нормализации z-счета[]
(значение по умолчанию) | трехмерный массив | числовой скалярСтандартное отклонение для нормализации z-счета, заданной как h-by-w-by-c массив, 1 1 c массивом средних значений на канал, числовой скаляр или []
, где h, w и c соответствуют высоте, ширине и количеству каналов стандартного отклонения, соответственно.
Если вы задаете StandardDeviation
свойство, затем Normalization
должен быть 'zscore'
. Если StandardDeviation
[]
, затем программное обеспечение вычисляет стандартное отклонение в учебное время.
Можно установить это свойство при создании сетей без обучения (например, при сборке сетей с помощью assembleNetwork
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Min
— Минимальное значение для перемасштабирования[]
(значение по умолчанию) | трехмерный массив | числовой скалярМинимальное значение для перемасштабирования, заданный как h-by-w-by-c массив, 1 1 c массивом минимумов на канал, числовой скаляр или []
, где h, w и c соответствуют высоте, ширине и количеству каналов минимумов, соответственно.
Если вы задаете Min
свойство, затем Normalization
должен быть 'rescale-symmetric'
или 'rescale-zero-one'
. Если Min
[]
, затем программное обеспечение вычисляет минимум в учебное время.
Можно установить это свойство при создании сетей без обучения (например, при сборке сетей с помощью assembleNetwork
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Max
— Максимальное значение для перемасштабирования[]
(значение по умолчанию) | трехмерный массив | числовой скалярМаксимальное значение для перемасштабирования, заданный как h-by-w-by-c массив, 1 1 c массивом максимумов на канал, числовой скаляр или []
, где h, w и c соответствуют высоте, ширине и количеству каналов максимумов, соответственно.
Если вы задаете Max
свойство, затем Normalization
должен быть 'rescale-symmetric'
или 'rescale-zero-one'
. Если Max
[]
, затем программное обеспечение вычисляет максимум в учебное время.
Можно установить это свойство при создании сетей без обучения (например, при сборке сетей с помощью assembleNetwork
).
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
DataAugmentation
— Увеличение данных преобразовывает'none'
(значение по умолчанию) | 'randcrop'
| 'randfliplr'
| массив ячеек 'randcrop'
и 'randfliplr'
DataAugmentation
свойство не рекомендуется. Чтобы предварительно обработать изображения с обрезкой, отражение и другие геометрические преобразования, используют augmentedImageDatastore
вместо этого.
Увеличение данных преобразовывает, чтобы использовать во время обучения, заданного как одно из следующих.
'none'
— Никакое увеличение данных
'randcrop'
— Возьмите случайную обрезку из учебного изображения. Случайная обрезка имеет тот же размер как входной размер.
'randfliplr'
— Случайным образом инвертируйте входные изображения горизонтально с 50%-м шансом.
Массив ячеек 'randcrop'
и 'randfliplr'
. Программное обеспечение применяет увеличение в порядке, заданном в массиве ячеек.
Увеличение данных изображения является другим способом уменьшать сверхподбор кривой [1], [2].
Типы данных: string
| char
| cell
Name
— Имя слоя''
(значение по умолчанию) | вектор символов | представляет скаляр в виде строки
Имя слоя, заданное как вектор символов или скаляр строки. Чтобы включать слой в график слоя, необходимо задать непустое уникальное имя слоя. Если вы обучаете серийную сеть со слоем и Name
установлен в ''
, затем программное обеспечение автоматически присваивает имя к слою в учебное время.
Типы данных: char |
string
NumInputs
— Количество входных параметровКоличество входных параметров слоя. Слой не имеет никаких входных параметров.
Типы данных: double
InputNames
— Введите имена{}
(значение по умолчанию)Введите имена слоя. Слой не имеет никаких входных параметров.
Типы данных: cell
NumOutputs
— Количество выходных параметровКоличество выходных параметров слоя. Этот слой имеет один выход только.
Типы данных: double
OutputNames
— Выведите имена{'out'}
(значение по умолчанию)Выведите имена слоя. Этот слой имеет один выход только.
Типы данных: cell
Создайте входной слой изображений для 28 28 цветных изображений с именем 'input'.
По умолчанию слой выполняет нормализацию данных путем вычитания среднего изображения набора обучающих данных от каждого входного изображения.
inputlayer = imageInputLayer([28 28 3],'Name','input')
inputlayer = ImageInputLayer with properties: Name: 'input' InputSize: [28 28 3] 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 classificationLayer]
layers = 7x1 Layer array with layers: 1 '' Image Input 28x28x1 images with 'zerocenter' normalization 2 '' Convolution 20 5x5 convolutions with stride [1 1] and padding [0 0 0 0] 3 '' ReLU ReLU 4 '' 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 7 '' Classification Output crossentropyex
Не рекомендуемый запуск в R2019b
AverageImage
будет удален. Используйте Mean
вместо этого. Чтобы обновить ваш код, замените все экземпляры AverageImage
с Mean
. Нет никаких различий между свойствами, которые требуют дополнительных обновлений вашего кода.
Изменение поведения в будущем релизе
Начиная в R2019b, imageInputLayer
и image3dInputLayer
, по умолчанию используйте мудрую каналом нормализацию. В предыдущих версиях эти слои используют поэлементную нормализацию. Чтобы воспроизвести это поведение, установите NormalizationDimension
опция этих слоев к 'element'
.
[1] Krizhevsky, A. i. Sutskever и Г. Э. Хинтон. "Классификация ImageNet с глубокими сверточными нейронными сетями". Усовершенствования в нейронных системах обработки информации. Vol 25, 2012.
[2] Cireşan, D., У. Мейер, Дж. Шмидхубер. "Многостолбцовые глубокие нейронные сети для классификации изображений". Конференция по IEEE по компьютерному зрению и распознаванию образов, 2012.
augmentedImageDatastore
| convolution2dLayer
| fullyConnectedLayer
| image3dInputLayer
| maxPooling2dLayer
| trainNetwork
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.