clearCache

Очистка кэша трассировки функции ускоренного глубокого обучения

    Синтаксис

    Описание

    пример

    clearCache(accfun) очищает кэш трассировки AcceleratedFunction accfun объекта

    Примеры

    свернуть все

    Загрузите dlnetwork имена объектов и классов из файла MAT dlnetDigits.mat.

    s = load("dlnetDigits.mat");
    dlnet = s.dlnet;
    classNames = s.classNames;

    Ускорите функцию градиентов модели modelGradients приведенный в конце примера.

    fun = @modelGradients;
    accfun = dlaccelerate(fun);

    Очистите все ранее кэшированные трассировки ускоренной функции с помощью clearCache функция.

    clearCache(accfun)

    Просмотрите свойства ускоренной функции. Поскольку кэш пуст, Occupancy свойство равно 0.

    accfun
    accfun = 
      AcceleratedFunction with properties:
    
              Function: @modelGradients
               Enabled: 1
             CacheSize: 50
               HitRate: 0
             Occupancy: 0
             CheckMode: 'none'
        CheckTolerance: 1.0000e-04
    
    

    Возвращенный AcceleratedFunction объект хранит следы базовых вызовов функций и повторно использует результат кэширования, когда тот же входной шаблон повторяется. Чтобы использовать ускоренную функцию в пользовательском цикле обучения, замените вызовы функции градиентов модели на вызовы ускоренной функции. Можно вызвать ускоренную функцию, так как вы бы активировали базовую функцию. Обратите внимание, что ускоренная функция не является указателем на функцию.

    Оцените ускоренную функцию градиентов модели со случайными данными с помощью dlfeval функция.

    X = rand(28,28,1,128,'single');
    dlX = dlarray(X,'SSCB');
    
    T = categorical(classNames(randi(10,[128 1])));
    T = onehotencode(T,2)';
    dlT = dlarray(T,'CB');
    
    [gradients,state,loss] = dlfeval(accfun,dlnet,dlX,dlT);

    Просмотрите Occupancy свойство ускоренной функции. Поскольку функция была оценена, кэш не пуст.

    accfun.Occupancy
    ans = 2
    

    Очистить кэш можно используя clearCache функция.

    clearCache(accfun)

    Просмотрите Occupancy свойство ускоренной функции. Поскольку кэш очищен, кэш пуст.

    accfun.Occupancy
    ans = 0
    

    Функция градиентов модели

    The modelGradients функция принимает dlnetwork dlnet объектамини-пакет входных данных dlX с соответствующими целевыми метками dlT и возвращает градиенты потерь относительно настраиваемых параметров в dlnet, состояние сети и потери. Чтобы вычислить градиенты, используйте dlgradient функция.

    function [gradients,state,loss] = modelGradients(dlnet,dlX,flT)
    
    [dlYPred,state] = forward(dlnet,dlX);
    loss = crossentropy(dlYPred,flT);
    gradients = dlgradient(loss,dlnet.Learnables);
    
    end

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

    свернуть все

    Ускоренная функция, заданная как AcceleratedFunction объект.

    Введенный в R2021a