exponenta event banner

инициализировать

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

    Описание

    пример

    Совет

    Большинство dlnetwork объекты инициализируются по умолчанию. Необходимо только вручную инициализировать dlnetwork если он не инициализирован. Можно проверить, инициализирована ли сеть с помощью Initialized имущества dlnetwork объект.

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

    Сеть с неустановленными пустыми значениями для обучаемых параметров и параметров состояния не инициализируется. Необходимо инициализировать неинициализированный 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