/
vuron
/
adept
Обзор
Документация
Войти
/
vuron
/
adept
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
with_cpu
src/dispatch/activations.hpp
52 строки
2 KB
kolkir
Variable constructor refactoring + ReLU+ LeakyReLU
11 фев 2025, 21:59
11 фев 2025, 21:59
2d87fb5
Код
Авторство
О чём код?
#pragma once #include <adept/dispatch/dispatcher.hpp> #include <adept/tensor.hpp> namespace adept { inline Tensor relu_fwd(const Tensor& values) { static auto& func = Dispatcher::instance().find("relu_fwd"); return Dispatcher::instance().call<Tensor, const Tensor&>(func, values); } inline Tensor relu_bwd(const Tensor& values, const Tensor& out_grad) { static auto& func = Dispatcher::instance().find("relu_bwd"); return Dispatcher::instance().call<Tensor, const Tensor&, const Tensor&>(func, values, out_grad); } inline Tensor leaky_relu_fwd(const Tensor& values, float32_t negative_slope) { static auto& func = Dispatcher::instance().find("leaky_relu_fwd"); return Dispatcher::instance().call<Tensor, const Tensor&, float32_t>(func, values, negative_slope); } inline Tensor leaky_relu_bwd(const Tensor& values, const Tensor& out_grad, float32_t negative_slope) { static auto& func = Dispatcher::instance().find("leaky_relu_bwd"); return Dispatcher::instance().call<Tensor, const Tensor&, const Tensor&, float32_t>( func, values, out_grad, negative_slope); } inline Tensor sigmoid_fwd(const Tensor& values) { static auto& func = Dispatcher::instance().find("sigmoid_fwd"); return Dispatcher::instance().call<Tensor, const Tensor&>(func, values); } inline Tensor sigmoid_bwd(const Tensor& values, const Tensor& out_grad) { static auto& func = Dispatcher::instance().find("sigmoid_bwd"); return Dispatcher::instance().call<Tensor, const Tensor&, const Tensor&>(func, values, out_grad); } inline Tensor silu_fwd(const Tensor& values) { static auto& func = Dispatcher::instance().find("silu_fwd"); return Dispatcher::instance().call<Tensor, const Tensor&>(func, values); } inline Tensor silu_bwd(const Tensor& values, const Tensor& out_grad) { static auto& func = Dispatcher::instance().find("silu_bwd"); return Dispatcher::instance().call<Tensor, const Tensor&, const Tensor&>(func, values, out_grad); } } // namespace adept