imageInputLayer

Отобразите входной слой

Описание

Изображение ввело входные параметры слоя 2D изображения к сети, и применяет нормализацию данных.

Для 3-D входа изображений используйте image3dInputLayer.

Создание

Описание

layer = imageInputLayer(inputSize) возвращает входной слой изображений и задает InputSize свойство.

пример

layer = imageInputLayer(inputSize,Name,Value) устанавливает дополнительные свойства с помощью пар "имя-значение". Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в одинарные кавычки.

Свойства

развернуть все

Вход изображений

Размер входных данных, заданных как вектор-строка из целых чисел [h w c], где hW, и c соответствуйте высоте, ширине и количеству каналов соответственно.

  • Для полутоновых изображений задайте вектор с c равняйтесь 1.

  • Для изображений RGB задайте вектор с c равняйтесь 3.

  • Для многоспектральных или гиперспектральных изображений задайте вектор с c равняйтесь количеству каналов.

Для 3-D изображения или входа объема, используйте image3dInputLayer.

Пример: [224 224 3]

Нормализация данных, чтобы применить каждый раз данные вперед распространена через входной слой, заданный как одно из следующего:

  • '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.

Размерность нормализации, заданная как одно из следующего:

  • 'auto' – Если опцией обучения является false и вы задаете любые из статистических данных нормализации (MeanСтандартное отклонениеmin, или Max), затем нормируйте по размерностям, совпадающим со статистикой. В противном случае повторно вычислите статистику в учебное время и примените мудрую каналом нормализацию.

  • 'channel' – Мудрая каналом нормализация.

  • 'element' – Поэлементная нормализация.

  • 'all' – Нормируйте все значения с помощью скалярной статистики.

Среднее значение для нулевого центра и нормализации 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

Стандартное отклонение для нормализации 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

Минимальное значение для перемасштабирования, заданный как 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

Максимальное значение для перемасштабирования, заданный как 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 свойство не рекомендуется. Чтобы предварительно обработать изображения с обрезкой, отражение и другие геометрические преобразования, используют augmentedImageDatastore вместо этого.

Увеличение данных преобразовывает, чтобы использовать во время обучения, заданного как одно из следующих.

  • 'none' — Никакое увеличение данных

  • 'randcrop' — Возьмите случайную обрезку из учебного изображения. Случайная обрезка имеет тот же размер как входной размер.

  • 'randfliplr' — Случайным образом инвертируйте входные изображения горизонтально с 50%-м шансом.

  • Массив ячеек 'randcrop' и 'randfliplr'. Программное обеспечение применяет увеличение в порядке, заданном в массиве ячеек.

Увеличение данных изображения является другим способом уменьшать сверхподбор кривой [1], [2].

Типы данных: string | char | cell

Слой

Имя слоя, заданное как вектор символов или скаляр строки. Чтобы включать слой в график слоя, необходимо задать непустое уникальное имя слоя. Если вы обучаете серийную сеть со слоем и Name установлен в '', затем программное обеспечение автоматически присваивает имя к слою в учебное время.

Типы данных: char | string

Количество входных параметров слоя. Слой не имеет никаких входных параметров.

Типы данных: double

Введите имена слоя. Слой не имеет никаких входных параметров.

Типы данных: cell

Количество выходных параметров слоя. Этот слой имеет один выход только.

Типы данных: double

Выведите имена слоя. Этот слой имеет один выход только.

Типы данных: 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

Изменение поведения в будущем релизе

Ссылки

[1] Krizhevsky, A. i. Sutskever и Г. Э. Хинтон. "Классификация ImageNet с глубокими сверточными нейронными сетями". Усовершенствования в нейронных системах обработки информации. Vol 25, 2012.

[2] Cireşan, D., У. Мейер, Дж. Шмидхубер. "Многостолбцовые глубокие нейронные сети для классификации изображений". Конференция по IEEE по компьютерному зрению и распознаванию образов, 2012.

Расширенные возможности

Генерация кода графического процессора
Сгенерируйте код CUDA® для NVIDIA® графические процессоры с помощью GPU Coder™.

Введенный в R2016a