removeParameter

Удалите параметр из ONNXParameters объект

    Описание

    пример

    params = removeParameter(params,name) удаляет параметр, заданный name от ONNXParameters объект params.

    Примеры

    свернуть все

    Импортируйте сеть, сохраненную в формате ONNX как функция, и измените сетевые параметры.

    Создайте модель ONNX из предварительно обученного alexnet сеть. Затем импортируйте alexnet.onnx как функция. Импортируйте предварительно обученную сеть ONNX с помощью importONNXFunction, который возвращает ONNXParamaters объект, который содержит сетевые параметры. Функция также создает новую функцию модели в текущей папке, которая содержит сетевую архитектуру. Задайте имя функции модели как alexnetFcn.

    net = alexnet;
    exportONNXNetwork(net,'alexnet.onnx');
    params = importONNXFunction('alexnet.onnx','alexnetFcn');
    A function containing the imported ONNX network has been saved to the file alexnetFcn.m.
    To learn how to use this function, type: help alexnetFcn.
    

    Отобразите параметры, которые обновляются во время обучения (params.Learnables) и параметры, которые остаются неизменными во время обучения (params.Nonlearnables).

    params.Learnables
    ans = struct with fields:
        data_Mean: [227×227×3 dlarray]
          conv1_W: [11×11×3×96 dlarray]
          conv1_B: [96×1 dlarray]
          conv2_W: [5×5×48×256 dlarray]
          conv2_B: [256×1 dlarray]
          conv3_W: [3×3×256×384 dlarray]
          conv3_B: [384×1 dlarray]
          conv4_W: [3×3×192×384 dlarray]
          conv4_B: [384×1 dlarray]
          conv5_W: [3×3×192×256 dlarray]
          conv5_B: [256×1 dlarray]
            fc6_W: [6×6×256×4096 dlarray]
            fc6_B: [4096×1 dlarray]
            fc7_W: [1×1×4096×4096 dlarray]
            fc7_B: [4096×1 dlarray]
            fc8_W: [1×1×4096×1000 dlarray]
            fc8_B: [1000×1 dlarray]
    
    
    params.Nonlearnables
    ans = struct with fields:
                conv1_Stride: [1×2 dlarray]
        conv1_DilationFactor: [1×2 dlarray]
               conv1_Padding: [1×1 dlarray]
              pool1_PoolSize: [1×2 dlarray]
                pool1_Stride: [1×2 dlarray]
               pool1_Padding: [1×1 dlarray]
                conv2_Stride: [1×2 dlarray]
        conv2_DilationFactor: [1×2 dlarray]
               conv2_Padding: [2×2 dlarray]
              pool2_PoolSize: [1×2 dlarray]
                pool2_Stride: [1×2 dlarray]
               pool2_Padding: [1×1 dlarray]
                conv3_Stride: [1×2 dlarray]
        conv3_DilationFactor: [1×2 dlarray]
               conv3_Padding: [2×2 dlarray]
                conv4_Stride: [1×2 dlarray]
        conv4_DilationFactor: [1×2 dlarray]
               conv4_Padding: [2×2 dlarray]
                conv5_Stride: [1×2 dlarray]
        conv5_DilationFactor: [1×2 dlarray]
               conv5_Padding: [2×2 dlarray]
              pool5_PoolSize: [1×2 dlarray]
                pool5_Stride: [1×2 dlarray]
               pool5_Padding: [1×1 dlarray]
                  fc6_Stride: [1×2 dlarray]
          fc6_DilationFactor: [1×2 dlarray]
                 fc6_Padding: [1×1 dlarray]
                  fc7_Stride: [1×2 dlarray]
          fc7_DilationFactor: [1×2 dlarray]
                 fc7_Padding: [1×1 dlarray]
                  fc8_Stride: [1×2 dlarray]
          fc8_DilationFactor: [1×2 dlarray]
                 fc8_Padding: [1×1 dlarray]
    
    

    Сеть имеет параметры, которые представляют три полносвязных слоя. Можно удалить параметры полносвязного слоя fc7 уменьшать вычислительную сложность. Проверяйте выходные размерности предыдущего слоя и входные размерности последующего слоя прежде, чем удалить средний слой из params.

    Удалите параметры слоя fc7 при помощи removeParameter.

    params = removeParameter(params,'fc7_B');
    params = removeParameter(params,'fc7_W');
    params = removeParameter(params,'fc7_Stride');
    params = removeParameter(params,'fc7_DilationFactor');
    params = removeParameter(params,'fc7_Padding');

    Отобразите обновленные learnable и nonlearnable параметры.

    params.Learnables
    ans = struct with fields:
        data_Mean: [227×227×3 dlarray]
          conv1_W: [11×11×3×96 dlarray]
          conv1_B: [96×1 dlarray]
          conv2_W: [5×5×48×256 dlarray]
          conv2_B: [256×1 dlarray]
          conv3_W: [3×3×256×384 dlarray]
          conv3_B: [384×1 dlarray]
          conv4_W: [3×3×192×384 dlarray]
          conv4_B: [384×1 dlarray]
          conv5_W: [3×3×192×256 dlarray]
          conv5_B: [256×1 dlarray]
            fc6_W: [6×6×256×4096 dlarray]
            fc6_B: [4096×1 dlarray]
            fc8_W: [1×1×4096×1000 dlarray]
            fc8_B: [1000×1 dlarray]
    
    
    params.Nonlearnables
    ans = struct with fields:
                conv1_Stride: [1×2 dlarray]
        conv1_DilationFactor: [1×2 dlarray]
               conv1_Padding: [1×1 dlarray]
              pool1_PoolSize: [1×2 dlarray]
                pool1_Stride: [1×2 dlarray]
               pool1_Padding: [1×1 dlarray]
                conv2_Stride: [1×2 dlarray]
        conv2_DilationFactor: [1×2 dlarray]
               conv2_Padding: [2×2 dlarray]
              pool2_PoolSize: [1×2 dlarray]
                pool2_Stride: [1×2 dlarray]
               pool2_Padding: [1×1 dlarray]
                conv3_Stride: [1×2 dlarray]
        conv3_DilationFactor: [1×2 dlarray]
               conv3_Padding: [2×2 dlarray]
                conv4_Stride: [1×2 dlarray]
        conv4_DilationFactor: [1×2 dlarray]
               conv4_Padding: [2×2 dlarray]
                conv5_Stride: [1×2 dlarray]
        conv5_DilationFactor: [1×2 dlarray]
               conv5_Padding: [2×2 dlarray]
              pool5_PoolSize: [1×2 dlarray]
                pool5_Stride: [1×2 dlarray]
               pool5_Padding: [1×1 dlarray]
                  fc6_Stride: [1×2 dlarray]
          fc6_DilationFactor: [1×2 dlarray]
                 fc6_Padding: [1×1 dlarray]
                  fc8_Stride: [1×2 dlarray]
          fc8_DilationFactor: [1×2 dlarray]
                 fc8_Padding: [1×1 dlarray]
    
    

    Измените архитектуру функции модели, чтобы отразить изменения в params таким образом, можно использовать сеть для предсказания новыми параметрами или переобучить сеть. Откройте функцию модели при помощи open alexnetFcn и удалите полносвязный слой fc7.

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

    свернуть все

    Сетевые параметры в виде ONNXParameters объект. params содержит сетевые параметры импортированной модели ONNX™.

    Имя параметра в виде вектора символов или строкового скаляра.

    Пример: 'conv2_W'

    Пример: 'conv2_Padding'

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

    свернуть все

    Сетевые параметры, возвращенные как ONNXParameters объект. params содержит сетевые параметры, обновленные removeParameter.

    Смотрите также

    | |

    Введенный в R2020b