Слой ввода изображения
Уровень ввода изображения вводит 2-D изображения в сеть и применяет нормализацию данных.
Для 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, StandardDeviation, Min, или Max), затем нормализовать по измерениям, соответствующим статистике. В противном случае пересчитайте статистику во время обучения и примените нормализацию канала.
'channel' - Канальная нормализация.
'element' - Элементная нормализация.
'all' - Нормализация всех значений с помощью скалярной статистики.
Mean - Среднее значение для нормализации нулевого центра и z-показателя[] (по умолчанию) | массив 3-D | числовой скалярСреднее значение для нормализации нулевого центра и z-оценки, указанное как массив h-by-w-by-c, массив 1-by-1-by-c средств на канал, числовой скаляр или [], где h, w и c соответствуют высоте, ширине и количеству каналов среднего значения, соответственно.
При указании Mean собственность, то Normalization должно быть 'zerocenter' или 'zscore'. Если Mean является []затем программное обеспечение вычисляет среднее значение во время обучения.
Это свойство можно задать при создании сетей без обучения (например, при сборке сетей с помощью assembleNetwork).
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
StandardDeviation - Стандартное отклонение для нормализации показателя z[] (по умолчанию) | массив 3-D | числовой скалярСтандартное отклонение для нормализации z-показателя, определяемое как массив h-by-w-by-c, массив 1-by-1-by-c средств на канал, числовой скаляр или [], где h, w и c соответствуют высоте, ширине и количеству каналов стандартного отклонения соответственно.
При указании StandardDeviation собственность, то Normalization должно быть 'zscore'. Если StandardDeviation является []затем программное обеспечение вычисляет стандартное отклонение во время обучения.
Это свойство можно задать при создании сетей без обучения (например, при сборке сетей с помощью assembleNetwork).
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Min - Минимальное значение для масштабирования[] (по умолчанию) | массив 3-D | числовой скалярМинимальное значение для масштабирования, указанное как массив h-by-w-by-c, массив 1-by-1-by-c минимумов на канал, числовой скаляр или [], где h, w и c соответствуют высоте, ширине и количеству каналов минимумов соответственно.
При указании Min собственность, то Normalization должно быть 'rescale-symmetric' или 'rescale-zero-one'. Если Min является [], то программное обеспечение вычисляет минимум во время обучения.
Это свойство можно задать при создании сетей без обучения (например, при сборке сетей с помощью assembleNetwork).
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Max - Максимальное значение для масштабирования[] (по умолчанию) | массив 3-D | числовой скалярМаксимальное значение для масштабирования, указанное как массив h-by-w-by-c, массив 1-by-1-by-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
AverageImage свойство будет удаленоНе рекомендуется начинать с R2019b
AverageImage будет удален. Использовать Mean вместо этого. Чтобы обновить код, замените все экземпляры AverageImage с Mean. Нет различий между свойствами, которые требуют дополнительных обновлений кода.
imageInputLayer и image3dInputLayer, по умолчанию используйте нормализацию по каналамИзменение поведения в будущем выпуске
Начиная с R2019b, imageInputLayer и image3dInputLayerпо умолчанию используется нормализация по каналам. В предыдущих версиях эти слои используют нормализацию по элементам. Чтобы воспроизвести это поведение, установите NormalizationDimension опции этих слоев в 'element'.
[1] Крижевский, А., И. Суцкевер, Г. Э. Хинтон. «ImageNet Classification с глубокими сверточными нейронными сетями». Достижения в системах обработки нейронной информации. Том 25, 2012.
[2] Сирешан, Д., У. Мейер, Ж. Шмидхубер. «Многоколонные глубокие нейронные сети для классификации изображений». Конференция IEEE по компьютерному зрению и распознаванию образов, 2012 год.
Примечания и ограничения по использованию:
Создание кода не поддерживает 'Normalization' задается с помощью дескриптора функции.
Примечания и ограничения по использованию:
Создание кода не поддерживает 'Normalization' задается с помощью дескриптора функции.
augmentedImageDatastore | convolution2dLayer | Конструктор глубоких сетей | featureInputLayer | fullyConnectedLayer | image3dInputLayer | maxPooling2dLayer | trainNetwork
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.