exponenta event banner

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