37 ae2f_AnnMlpMk(err, &
mlp, 4
, lenv, 0
, 0
, 0
, LossDerivCROSS
, 0
, 0
, 0
, 0
, 0.5
, 0.5
, 13
, 9
);
40 printf(
"[Error]: %d\n",
err[0]);
45 for (size_t i = 0; i <
mlp->m_depth - 1; i++) {
47 mlp->m_actderiv[i] = ActDeriv;
48 size_t outc =
lenv[i + 1];
51 for (size_t j = 0; j < outc; j++) {
55 for (size_t j = 0; j < inc * outc; j++) {
61 for (size_t j = 0; j < 4; j++) {
64 printf(
"[Error in Predict]: %d\n",
err[0]);
68 printf(
"Before train: %f %f -> %f (target: %f)\n",
inp[j][0],
inp[j][1],
output[0],
goal_xor[j]);
72 for (size_t i = 0; i < 10000; i++) {
73 for (size_t j = 0; j < 4; j++) {
76 printf(
"[Error in TrainAutoStream]: %d\n",
err[0]);
82 printf(
"\nEpoch %zu:\n", i);
83 for (size_t j = 0; j < 4; j++) {
87 printf(
"[Error in PredictStream]: %d\n",
err[0]);
97 printf(
"\nFinal results:\n");
98 for (size_t j = 0; j < 4; j++) {
102 printf(
"[Error in Predict]: %d\n",
err[0]);
ae2f_SHAREDEXPORT void ae2f_AnnMlpMk(ae2f_err_t *restrict const reterr, ae2f_AnnMlp *restrict *restrict const retmk, const size_t depth, const size_t *restrict const szvector, ae2f_opt size_t *restrict const szswap_opt, ae2f_opt ae2f_AnnAct_t **restrict const act, ae2f_opt ae2f_AnnAct_t **restrict const actderiv, ae2f_AnnLoss_t *const lossderiv, ae2f_opt ae2f_float_t *restrict const deltastream, ae2f_opt ae2f_float_t *restrict const outcache, ae2f_opt ae2f_float_t *restrict const weight, ae2f_opt ae2f_float_t *restrict const bias, ae2f_float_t const learningrate, ae2f_float_t const learningrate_bias, const size_t offset, const size_t extra) noexcept