ae2f_docs
Act.h
1/**
2 * @file vAct.h
3 * @author ae2f
4 * @brief
5 * @version 0.1
6 * @date 2025-02-13
7 *
8 * @copyright Copyright (c) 2025
9 *
10 */
11
12#ifndef ae2fCL_AnnAct_h
13#define ae2fCL_AnnAct_h
14
15#include <stddef.h>
16#include <ae2f/Float.h>
17#include <ae2f/Guide.h>
18
19/// @brief Customisable activasion function type.
20typedef void ae2f_AnnActFFN_t (
21 ae2f_float_t* ret
22 , ae2f_LP(count) const ae2f_float_t* out
23 , const size_t index
24 , const size_t count
25 );
26
27#define ae2f_AnnActFFN_PASS(r, o, i, c) *(r) = (o)[i]
28#define ae2f_AnnActDerivFFN_PASS(r, o, i, c) *(r) = 1.0
29
30/// @brief
31/// Specify the way of calculating loss.
32///
33/// This will be multiplied with learning rate, \n
34/// and that value will be added to each weights field and bias.
35/// @param out Predicted value
36/// @param goal Expected value (wanted)
37/// @param ret Calculated loss.
38typedef void ae2f_AnnLossFFN_t (
39 ae2f_float_t* ret,
40 ae2f_LP(count) const ae2f_float_t* out,
41 ae2f_LP(count) const ae2f_float_t* goal,
42 const size_t index,
43 const size_t count
44 );
45
46#define ae2f_AnnLossDerivFFN_PASS(r, o, g, i, c) *(r) = (o)[i] * (1.0 - (g)[i]);
47
48typedef void ae2f_AnnActFwdMHATTN_t(
49 ae2f_float_t* ret,
50 size_t prm_retidx,
51 ae2f_LP(prm_len) const ae2f_float_t* prm_inp,
52 size_t prm_len
53 );
54
55typedef void ae2f_AnnActBwdMHATTN_t(
56 ae2f_float_t* ret,
57 size_t prm_retidx,
58 ae2f_LP(prm_len) const ae2f_float_t* prm_grad_in,
59 ae2f_LP(prm_len) const ae2f_float_t* prm_softmax_out,
60 size_t prm_len
61 );
62
63#endif
#define ae2f_AnnUtilIdx2(idx1, sz1, idx0, sz0)
Definition Util.h:23
#define ae2f_AnnUtilIdx3(idx2, sz2, idx1, sz1, idx0, sz0)
Definition Util.h:24
#define ae2f_structdef(key, name)
Definition Cast.h:110
#define ae2f_static_cast(t, v)
Definition Cast.h:42
#define ae2f_reg
Register keyword.
Definition Reg.h:12
#define ae2f_LP(...)
Definition Guide.h:23
#define ae2f_opt
Definition Guide.h:26
#define __ae2f_MACRO_GENERATED
Definition Conv.auto.h:2
#define ae2f_MAC_BUILD
Definition Util.h:5
#define ae2f_AnnMhattnHeadConcat_imp(prm_mhattn, prm_seqlen, m_i1, m_i0)
Index redirector from [prm_seqlen, m_mdldist] to [m_headc, prm_seqlen, kdist].
Definition Mhattn.h:67
#define ae2f_AnnMhattnHeadSplit_imp(prm_mhattn, prm_seqlen, m_i2, m_i1, m_i0)
Index redirector from [m_headc, prm_seqlen, kdist] to [prm_seqlen, m_mdldist].
Definition Mhattn.h:46
#define ae2f_AnnMhattnFwdSeqConvOne_imp( prm_seq, prm_w, prm_mdldist, prm_seqlen, prm_i, prm_j, prm_k)
Definition Mhattn.h:95
#define ae2f_AnnMhattnKDist(prm_mhattn)
m_headc * kdist == m_mdldist
Definition Mhattn.h:32
#define ae2f_NEED_CLASS
Definition Mlp.cl.c:8
#define ae2f_MAC(...)
Definition mac.h:28