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
    

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

    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