initialize

Инициализируйте обучаемые и параметры состояния dlnetwork

    Описание

    пример

    Совет

    Самые dlnetwork объекты инициализируются по умолчанию. Вам нужно только вручную инициализировать dlnetwork если он не инициализирован. Можно проверить, инициализирована ли сеть с помощью Initialized свойство dlnetwork объект.

    dlnet = initialize(dlnet) инициализирует все несеянные настраиваемые параметры и значения состояний dlnet на основе входных размеров, заданных входными слоями сети. Любые обучаемые параметры или параметры состояния, которые уже содержат значения, остаются неизменными.

    Сеть с неактивными, пустыми значениями для параметров learnable и state неинициализирована. Необходимо инициализировать неинициализированную dlnetwork прежде чем вы сможете использовать его. По умолчанию dlnetwork объекты сконструированы с начальными параметрами и не нуждаются в инициализации.

    пример

    dlnet = initialize(dlnet,dlX1,...,dlXn) инициализирует все несеянные настраиваемые параметры и значения состояний dlnet на основе примера входов сети dlX1,...,dlXn. Используйте этот синтаксис, когда сеть имеет входы, которые не соединены с входным слоем.

    Примеры

    свернуть все

    Используйте initialize функция для инициализации dlnetwork объект, который содержит слой входа.

    Задайте слои сети.

    layers = [
        imageInputLayer([28 28 1],'Normalization','none','Name','in')
        convolution2dLayer(5,20,'Name','conv')
        batchNormalizationLayer('Name','bn')
        reluLayer('Name','relu')
        fullyConnectedLayer(10,'Name','fc')
        softmaxLayer('Name','sm')];

    Создайте неинициализированную dlnetwork. Установите Initialize name-value опции к false.

    dlnet = dlnetwork(layers,'Initialize',false);

    Исследуйте настраиваемые параметры слоя свертки.

    dlnet.Learnables.Value(dlnet.Learnables.Layer=='conv')
    ans = 
        {0×0 double}
        {0×0 double}
    

    Поскольку сеть не инициализирована, настраиваемые параметры слоя свертки пусты.

    Инициализируйте настраиваемые параметры сети с начальными значениями.

    dlnet = initialize(dlnet);

    Проверяйте настраиваемые параметры слоя свертки после инициализации.

    dlnet.Learnables.Value(dlnet.Learnables.Layer=='conv')
    ans = 
        {5×5×1×20 dlarray}
        {1×1×20   dlarray}
    

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

    Проверьте, что сеть инициализирована и готова к обучению.

    dlnet.Initialized
    ans = 
       1
    

    Используйте initialize функция для инициализации множественного входного dlnetwork объект, который содержит один входной слой и один несвязанный вход.

    Определите сетевую архитектуру. Создайте сеть с двумя ветвями. Сеть принимает два входа с одним входом на ветвь. Первая ветвь содержит слой входа, а вторая ветвь - нет. Соедините ветви с помощью слоя сложения.

    numFilters = 24;
    inputSize = [64 64 3];
    
    layersBranch1 = [
        imageInputLayer(inputSize,'Normalization','None','Name','in')
        convolution2dLayer(3,6*numFilters,'Padding','same','Stride',2,'Name','conv1Branch1')
        groupNormalizationLayer('all-channels','Name','gn1Branch1')
        reluLayer('Name','relu1Branch1')
        convolution2dLayer(3,numFilters,'Padding','same','Name','conv2Branch1')
        groupNormalizationLayer('channel-wise','Name','gn2Branch1')
        additionLayer(2,'Name','add')
        reluLayer('Name','reluCombined')
        fullyConnectedLayer(10,'Name','fc')
        softmaxLayer('Name','sm')];
    
    layersBranch2 = [
        convolution2dLayer(1,numFilters,'Name','convBranch2')
        groupNormalizationLayer('all-channels','Name','gnBranch2')];
    
    lgraph = layerGraph(layersBranch1);
    lgraph = addLayers(lgraph,layersBranch2);
    lgraph = connectLayers(lgraph,'gnBranch2','add/in2');  

    Преобразуйте сеть в dlnetwork. Чтобы создать dlnetwork объект без начальных значений обучаемых и параметров состояния, установите Initialize name-value опции к false..

    dlnet = dlnetwork(lgraph,'Initialize',false);

    Исследуйте настраиваемые параметры второго слоя нормализации группы в первой ветви сети.

    dlnet.Learnables.Value(dlnet.Learnables.Layer=='gn2Branch1')
    ans = 
        {0×0 double}
        {0×0 double}
    

    Поскольку сеть не инициализирована, настраиваемые параметры слоя пусты.

    Проверьте порядок входов сети.

    dlnet.InputNames
    ans = 1×2 cell    
    'in'         'convBranch2'       
    

    Создайте пример входных данных с таким же размером и форматом, как и типичные сетевые входы. Используйте пример ввода размера 64 на 64 с 3 каналами для входа в входной слой in. Используйте вход размера 64 на 64 с 18 каналами для несвязанного входа в слой convBranch2.

    dlX1 = dlarray(rand(inputSize),"SSCB");
    dlX2 = dlarray(rand([32 32 18]),"SSCB");

    Инициализируйте настраиваемые параметры сети с помощью примера входов.

    dlnet = initialize(dlnet,dlX1,dlX2);

    Проверяйте настраиваемые параметры слоя свертки после инициализации.

    dlnet.Learnables.Value(dlnet.Learnables.Layer=='gn2Branch1')
    ans = 
        {1×1×24 dlarray}
        {1×1×24 dlarray}
    

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

    Используйте Initialized свойство сети проверить, что сеть инициализирована и готова к обучению.

    dlnet.Initialized
    ans = 
       1
    

    Входные параметры

    свернуть все

    Неинициализированная сеть, заданная как dlnetwork объект.

    Пример входов сети, заданный как dlarray объекты.

    Входы примера должны быть отформатированы dlarray объекты. Предоставьте примеры входов в том же порядке, что и порядок, заданный InputNames свойство входной сети.

    Выходные аргументы

    свернуть все

    Инициализированная сеть, возвращенная как dlnetwork объект.

    Введенный в R2021a