Ускоренная функция глубокого обучения
Один AcceleratedFunction сохраняет следы базовой функции
Повторное использование кэшированной трассировки зависит от входов и выходов функции:
Для любого dlarray объект или структура dlarray входные данные объекта, трассировка зависит от размера, формата и базового типа данных dlarray. То есть ускоренная функция запускает новую трассировку для dlarray входные данные с размером, форматом или базовым типом данных, не содержащиеся в кэше. Любой dlarray входные данные, отличающиеся только значением для ранее кэшированной трассировки, не запускают новую трассировку.
Для любого dlnetwork входные данные, трассировка зависит от размера, формата и базового типа данных dlnetwork состояние и обучаемые параметры. То есть ускоренная функция запускает новую трассировку для dlnetwork входные данные с обучаемыми параметрами или состоянием с размером, форматом и базовым типом данных, не содержащимися в кэше. Любой dlnetwork входные данные, отличающиеся только значением состояния и обучаемыми параметрами для ранее кэшированной трассировки, не запускают новую трассировку.
Для других типов ввода трассировка зависит от значений ввода. То есть ускоренная функция запускает новую трассировку для других типов входных данных со значением, не содержащимся в кэше. Любые другие входные данные, имеющие то же значение, что и ранее кэшированная трассировка, не запускают новую трассировку.
Трассировка зависит от количества выходов функций. То есть ускоренная функция запускает новую трассировку для вызовов функции с ранее невидимым количеством выходных аргументов. Любые вызовы функции с тем же количеством выходных аргументов, что и ранее кэшированная трассировка, не запускают новую трассировку.
При необходимости программное обеспечение кэширует любые новые трассировки путем оценки базовой функции и кэширования результирующей трассировки в AcceleratedFunction объект.
Возвращенный AcceleratedFunction объект кэширует следы вызовов базовой функции и повторно использует кэшированный результат при повторном возникновении одного и того же шаблона ввода.
Попробуйте использовать dlaccelerate для вызовов функций, которые:
являются длительными
имеют dlarray объекты, сооружения dlarray объекты, или dlnetwork объекты в качестве входных данных
не имеют побочных эффектов, таких как запись в файлы или отображение выходных данных
Вызовите ускоренную функцию так же, как и базовую функцию. Обратите внимание, что ускоренная функция не является дескриптором функции.
Примечание
При использовании dlfeval функция, программное обеспечение автоматически ускоряет forward и predict функции для dlnetwork вход. Если вы ускоряете функцию глубокого обучения, где большая часть вычислений происходит в вызовах forward или predict функции для dlnetwork ввод, то вы можете не увидеть улучшения во времени обучения.
Внимание
Один AcceleratedFunction объект не знает об обновлениях базовой функции. При изменении функции, связанной с ускоренной функцией, очистите кэш с помощью clearCache объектная функция или использование команды clear functions.
Создание AcceleratedFunction объект, используйте dlaccelerate функция.
clearCache | Очистить ускоренный кэш трассировки функции глубокого обучения |
clearCache | dlaccelerate | dlarray | dlfeval | dlgradient