featureInputLayer

Свойства входного слоя

Описание

Функция ввела входные данные о функции слоя к сети, и применяет нормализацию данных. Используйте этот слой, когда у вас будет набор данных числовых скаляров, представляющих функции (данные без пространственных или измерений времени).

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

Создание

Описание

layer = featureInputLayer(numFeatures) возвращает входной слой функции и устанавливает InputSize свойство к конкретному количеству функций.

пример

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

Свойства

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

Вход функции

Количество функций каждого наблюдения в данных в виде положительного целого числа.

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

Пример: 10

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

  • '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' – Мудрая каналом нормализация.

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

Среднее значение для нулевого центра и нормализации z-счета в виде numFeatures- 1 вектор из средних значений на функцию, числовой скаляр или [].

Если вы задаете Mean свойство, затем Normalization должен быть 'zerocenter' или 'zscore'. Если Mean [], затем программное обеспечение вычисляет среднее значение в учебное время.

Можно установить это свойство при создании сетей без обучения (например, при сборке использования сетей assembleNetwork).

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Стандартное отклонение для нормализации z-счета в виде numFeatures- 1 вектор из средних значений на функцию, числовой скаляр или [].

Если вы задаете StandardDeviation свойство, затем Normalization должен быть 'zscore'. Если StandardDeviation [], затем программное обеспечение вычисляет стандартное отклонение в учебное время.

Можно установить это свойство при создании сетей без обучения (например, при сборке использования сетей assembleNetwork).

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Минимальное значение для того, чтобы перемасштабировать в виде numFeatures- 1 вектор из минимумов на функцию, числовой скаляр или [].

Если вы задаете Min свойство, затем Normalization должен быть 'rescale-symmetric' или 'rescale-zero-one'. Если Min [], затем программное обеспечение вычисляет минимум в учебное время.

Можно установить это свойство при создании сетей без обучения (например, при сборке использования сетей assembleNetwork).

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Максимальное значение для того, чтобы перемасштабировать в виде numFeatures- 1 вектор из максимумов на функцию, числовой скаляр или [].

Если вы задаете Max свойство, затем Normalization должен быть 'rescale-symmetric' или 'rescale-zero-one'. Если Max [], затем программное обеспечение вычисляет максимум в учебное время.

Можно установить это свойство при создании сетей без обучения (например, при сборке использования сетей assembleNetwork).

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Слой

Имя слоя в виде вектора символов или строкового скаляра. Для Layer вход массивов, trainNetwork, assembleNetwork, layerGraph, и dlnetwork функции автоматически присваивают имена к слоям с Name установите на ''.

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

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

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

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

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

Это свойство доступно только для чтения.

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

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

Это свойство доступно только для чтения.

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

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

Figure contains an axes object. The axes object contains an object of type graphplot.

Создайте 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

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

Введенный в R2020b