From 2fb71fcbc594c3a3f32ee0c95be2e4e9b9ae97df Mon Sep 17 00:00:00 2001 From: tslil Date: Tue, 12 Jan 2021 00:10:12 -0500 Subject: This finally works! --- include/ct1973.c | 701 ++---------------------------------------------------- include/ct1973.h | 20 +- include/weights.c | 557 +++++++++++++++++++++++++++++++++++++++++++ include/weights.h | 18 ++ 4 files changed, 592 insertions(+), 704 deletions(-) create mode 100644 include/weights.c create mode 100644 include/weights.h (limited to 'include') diff --git a/include/ct1973.c b/include/ct1973.c index 78be1f5..592b0b1 100644 --- a/include/ct1973.c +++ b/include/ct1973.c @@ -13,17 +13,18 @@ evaluate_black_win(void) { * Convolution layer * * ------------------ */ // for each kernel - for (uint8_t k = 0; k < KERN_NUM; k++) { + for (uint8_t kern = 0; kern < KERN_NUM; kern++) { // the stride is 1, march across the board - for (uint8_t by = 0; by < KERN_OSIZE; by++) { - for (uint8_t bx = 0; bx < KERN_OSIZE; bx++) { - flattened[k+KERN_NUM*(by+bx*KERN_OSIZE)] = 0; // conv2d_biases[k]; + for (uint8_t bx = 0; bx < KERN_OSIZE; bx++) { + for (uint8_t by = 0; by < KERN_OSIZE; by++) { + flattened[kern+KERN_NUM*(bx+by*KERN_OSIZE)] = + conv2d_biases[kern]; // Compute the convolution for this position for (uint8_t ky = 0; ky < KERN_SIZE; ky++) { for (uint8_t kx = 0; kx < KERN_SIZE; kx++) { for (uint8_t c = 0; c < KERN_CHAN; c++) { // Where we are on the board - const uint8_t loc = kx+bx+(ky+by)*board_size; + const uint8_t loc = kx+by+(ky+bx)*board_size; // Look up what's on the board at this location, and // multiply it. For c=0 we have to do some extra work float lookup = 0; @@ -37,30 +38,28 @@ evaluate_black_win(void) { lookup = (colours[loc] & 1) ? +0.50 : -0.50; } } else { - lookup = (colours[k] & (1< #include #include "tak.h" - -#define KERN_NUM 12 -#define KERN_CHAN 8 -#define KERN_SIZE 3 -#define KERN_OSIZE (5-KERN_SIZE+1) -#define CONV_NUM (KERN_NUM * KERN_OSIZE * KERN_OSIZE) - -#define DENSE1_NUM 9 -#define DENSE2_NUM 8 -#define OUTPUT_NUM 2 - -extern const float conv2d_weights[KERN_SIZE][KERN_SIZE][KERN_CHAN][KERN_NUM]; -extern const float conv2d_biases[KERN_NUM]; -extern const float dense1_weights[CONV_NUM+2][DENSE1_NUM]; -extern const float dense1_biases[DENSE1_NUM]; -extern const float dense2_weights[DENSE1_NUM][DENSE2_NUM]; -extern const float dense2_biases[DENSE2_NUM]; -extern const float output_weights[DENSE2_NUM][OUTPUT_NUM]; -extern const float output_biases[2]; +#include "weights.h" float evaluate_black_win(void); diff --git a/include/weights.c b/include/weights.c new file mode 100644 index 0000000..dd9827c --- /dev/null +++ b/include/weights.c @@ -0,0 +1,557 @@ +#include "weights.h" + +const float conv2d_weights[KERN_NUM][KERN_SIZE][KERN_SIZE][KERN_CHAN] = +{{{{ 3.94198000e-01, 2.16786399e-01, 6.33892179e-01, 5.22474587e-01, + 4.43512738e-01, 1.17320895e+00, 8.05593789e-01, -2.17461014e+00}, + { 5.93545377e-01, 4.18298364e-01, 4.68158484e-01, -6.59127682e-02, + 3.38732712e-02, 2.48237565e-01, -1.43461198e-01, -5.79761088e-01}, + { 3.35811168e-01, 2.82250136e-01, 6.25628904e-02, -1.60913631e-01, + -3.31842780e-01, -7.49225020e-01, 1.15657330e+00, 3.29810865e-02}}, + + {{ 1.37874305e-01, -5.62339788e-03, 5.84144518e-02, -3.42566878e-01, + 3.91136408e-01, -2.76835144e-01, -2.93782711e-01, -5.38257360e-01}, + { 3.23457778e-01, 2.50636637e-02, 7.58238584e-02, 4.22761822e-03, + 1.50077492e-01, -8.48986804e-02, -9.71315578e-02, 7.02978745e-02}, + { 3.85915697e-01, 9.48228389e-02, 9.61276740e-02, -1.53182045e-01, + 2.47424573e-01, 2.02475354e-01, -6.26942396e-01, 7.04269931e-02}}, + + {{ 1.39219209e-03, 2.66771764e-01, 4.95068640e-01, 5.93640059e-02, + -3.42691481e-01, -1.91054061e-01, -1.73512906e-01, -1.72190654e+00}, + { 1.53537512e-01, 4.43986773e-01, -3.95300388e-01, 4.08324420e-01, + 2.00227454e-01, 6.96190834e-01, 4.61352319e-01, 1.19391503e-02}, + {-8.60847309e-02, -1.84670910e-02, 1.00795180e-02, 2.03594238e-01, + 1.05067514e-01, 4.43644643e-01, 4.08420525e-02, 8.06178212e-01}}}, + + + {{{-3.50342482e-01, 2.69990891e-01, 8.08737613e-03, -9.90253448e-01, + 3.17772269e-01, -5.70147634e-01, -1.19415617e+00, -1.60025287e+00}, + {-2.41626874e-01, 2.14406267e-01, -1.88085362e-01, 6.09662771e-01, + -1.26562610e-01, -5.50104678e-01, -5.00061274e-01, -2.23933792e+00}, + { 1.95097029e-01, -5.10871053e-01, -2.75746047e-01, 3.48761469e-01, + -7.86149055e-02, 5.01224935e-01, -4.13231291e-02, 2.28333279e-01}}, + + {{-3.25449735e-01, 3.86605114e-01, 6.92986786e-01, 3.56760137e-02, + -1.47724912e-01, 4.09668535e-01, 8.03496897e-01, -2.16021594e-02}, + {-3.96393150e-01, 3.76221947e-02, 4.98616435e-02, -7.00756073e-01, + 7.73911834e-01, 4.27657843e-01, 4.58007634e-01, -7.69407570e-01}, + {-2.90610284e-01, -3.31869811e-01, -3.41746956e-01, 6.91120923e-02, + 6.56486869e-01, 2.10781008e-01, -2.10555106e-01, -1.26542282e+00}}, + + {{ 1.59536347e-01, 1.43770918e-01, -2.96489775e-01, 6.04132339e-02, + 2.03691646e-01, 3.02036524e-01, 1.74711302e-01, -2.38500401e-01}, + { 2.39037439e-01, 3.01957548e-01, 1.25980571e-01, -3.19566548e-01, + -4.07432854e-01, -7.72544980e-01, -1.40943006e-01, -7.13736534e-01}, + {-1.73302487e-01, 2.12433428e-01, -7.13128820e-02, 2.05750495e-01, + -5.88228405e-01, 8.18531632e-01, 7.50374675e-01, -7.87697017e-01}}}, + + + {{{ 8.03232566e-02, 2.67079264e-01, 3.14857543e-01, 1.16038203e-01, + 7.79321849e-01, 3.01660359e-01, 4.33274657e-01, 1.16426969e+00}, + {-2.68022027e-02, 2.77997963e-02, 1.60645962e-01, -2.51964808e-01, + -5.80483973e-01, 7.82341540e-01, -3.11883152e-01, 1.67880133e-02}, + {-2.42671698e-01, 2.14899387e-02, -3.57916988e-02, 3.65775287e-01, + -2.99142718e-01, -4.23440039e-01, 4.51375246e-01, 6.11670613e-01}}, + + {{ 2.07894444e-01, -6.84689656e-02, 8.11328292e-02, 1.15314387e-01, + -1.56669974e-01, 7.42394328e-02, -4.36405033e-01, 1.26303747e-01}, + { 1.96163073e-01, -5.69845587e-02, 3.13998252e-01, 1.00820877e-01, + 1.10884406e-01, 2.29339018e-01, 8.01668465e-02, -4.72191125e-01}, + { 2.32348278e-01, 3.17311227e-01, 3.29706967e-02, 3.37762684e-01, + 1.12865176e-02, 4.67097819e-01, 5.30372441e-01, 1.98836654e-01}}, + + {{ 5.60297370e-01, 2.09528461e-01, 5.85234940e-01, 2.49780655e-01, + 4.94201154e-01, -1.01845555e-01, 1.73953593e-01, 6.02359660e-02}, + { 8.28882515e-01, 3.70769590e-01, 3.56147736e-01, 2.60300815e-01, + 8.53357092e-02, -2.11125806e-01, 3.29005569e-01, -3.60900432e-01}, + { 3.73693883e-01, -1.97500601e-01, -1.80768833e-01, 8.54718447e-01, + 5.86248338e-01, 9.19349313e-01, 5.16763389e-01, 6.63973510e-01}}}, + + + {{{-6.52734265e-02, -6.36774376e-02, -1.11087402e-02, -1.44849822e-01, + -3.76348138e-01, 3.09590280e-01, -8.36502075e-01, -1.48117125e+00}, + {-2.75438935e-01, -1.15077890e-01, 1.59659132e-01, -4.45438363e-03, + 1.21395186e-01, 4.05424625e-01, 1.42056119e+00, 6.54903352e-01}, + {-1.23880482e+00, -6.46678865e-01, -3.67574483e-01, -1.20896733e+00, + -2.43024006e-01, -1.68104053e+00, -9.57634032e-01, -1.68753549e-01}}, + + {{-1.10809356e-01, -1.41300812e-01, 1.64964423e-02, 2.38802675e-02, + 6.99262368e-03, -9.82131004e-01, -1.61134824e-01, 7.04851031e-01}, + {-6.89645186e-02, 4.40149494e-02, -7.84406718e-03, 1.21660158e-01, + -7.07301646e-02, -4.85397369e-01, -3.76187146e-01, -1.05949616e+00}, + {-2.65775710e-01, 9.81738511e-03, 1.35149630e-02, -6.75835386e-02, + -3.45747203e-01, -3.77922893e-01, 7.59211659e-01, -6.53271198e-01}}, + + {{ 1.77326813e-01, 2.09385692e-03, 2.91210134e-02, 8.69541392e-02, + 6.40379041e-02, 3.31114680e-01, -1.69236079e-01, -2.65060868e-02}, + { 4.40188274e-02, 3.36011127e-02, 5.97000122e-01, 6.78858399e-01, + 5.07123172e-01, 2.09420264e-01, 1.11940658e+00, -4.77754712e-01}, + { 6.47513010e-03, 1.46071576e-02, 8.47320408e-02, 2.46969372e-01, + -3.50105137e-01, -7.68425465e-01, 1.25632203e+00, -4.10970509e-01}}}, + + + {{{ 1.97525462e-03, 1.66859910e-01, -2.76876956e-01, -2.29236558e-01, + 5.26555240e-01, 5.66152334e-01, -9.27498341e-01, -8.09430897e-01}, + {-5.84522635e-02, 3.19226831e-01, 8.85327384e-02, 5.71642458e-01, + 3.23900312e-01, 2.17928991e-01, 6.44550383e-01, 4.62148696e-01}, + {-6.80597067e-01, -3.90106440e-01, -4.38605398e-01, -4.62388635e-01, + -8.81655549e-04, -1.96039110e-01, 4.50291485e-02, 9.11529958e-01}}, + + {{ 6.50597885e-02, -1.60834461e-01, -4.65904266e-01, -2.95494556e-01, + 9.99149263e-01, 1.20569706e-01, 9.20083940e-01, 9.52437580e-01}, + { 3.14089119e-01, 3.38910401e-01, 5.41668653e-01, 6.38456285e-01, + -4.87982817e-02, 2.06393585e-01, -1.02699482e+00, 8.18399549e-01}, + { 9.16301310e-02, 1.17116109e-01, -2.33232558e-01, -1.62291285e-02, + -8.30247998e-01, 4.66037661e-01, 6.76843822e-01, 7.81690300e-01}}, + + {{-2.58419514e-01, -8.11155587e-02, -2.36616597e-01, -7.00374544e-01, + -5.59722781e-01, 2.35507697e-01, -2.40024865e-01, 7.79863536e-01}, + {-1.60648510e-01, 1.25320569e-01, -1.12962104e-01, -1.28648013e-01, + -1.75748721e-01, -2.19278652e-02, 2.76137441e-01, 1.17856157e+00}, + { 1.50437299e-02, 1.81465507e-01, 1.78147942e-01, -6.71963170e-02, + 1.26956003e-02, 2.62519091e-01, -3.09315681e-01, 1.44982534e-02}}}, + + + {{{-2.79880971e-01, -1.52255632e-02, -2.01568622e-02, 1.73251420e-01, + 6.20734751e-01, 4.47111696e-01, 4.73733157e-01, 1.38246155e+00}, + {-2.21643731e-01, -1.78510413e-01, -4.58142906e-02, 1.10983677e-01, + 1.16664581e-01, 4.25700963e-01, 7.57863879e-01, 4.70331192e-01}, + { 4.45040554e-01, 2.17703551e-01, 6.22261278e-02, 1.39389038e-01, + 1.22338071e-01, -3.92730832e-02, -1.43209957e-02, -6.77891612e-01}}, + + {{-3.22339892e-01, -1.39101803e-01, -2.45672300e-01, -1.70028403e-01, + -6.52377844e-01, -6.66428581e-02, -4.40096170e-01, 4.33727473e-01}, + { 3.26441675e-02, -2.62059029e-02, -2.66099516e-02, 2.28090599e-01, + -4.36064869e-01, -1.26357746e+00, -7.95949101e-01, -4.53235388e-01}, + { 4.32160139e-01, -1.10802628e-01, -3.19531560e-01, -3.01427543e-01, + 1.71874091e-01, 1.71612680e-01, -5.84470689e-01, 4.72097635e-01}}, + + {{-4.83579151e-02, 3.73320021e-02, -2.19820365e-02, -3.66648167e-01, + -3.25773098e-02, 2.57035941e-01, -5.17180204e-01, -6.56254053e-01}, + { 5.90575337e-02, 2.00298324e-01, 2.63737757e-02, -4.03283983e-01, + -3.09719175e-01, -1.95378721e-01, -2.51598865e-01, -1.95157975e-02}, + { 7.63900995e-01, 9.92268026e-02, 3.95516127e-01, 1.27811292e-02, + 1.46945477e-01, -5.77228703e-02, 3.16139370e-01, -3.61333817e-01}}}, + + + {{{ 1.03152923e-01, 1.19026944e-01, 1.46665677e-01, 6.69817030e-02, + -1.55484661e-01, 2.40639057e-02, -4.85318542e-01, 5.73662579e-01}, + {-6.12948574e-02, -2.49647170e-01, -1.22862384e-01, -3.78143527e-02, + -2.40498066e-01, -4.90457304e-02, -1.31049275e-01, 7.02635646e-01}, + {-5.83489761e-02, -1.61086082e-01, -3.54746640e-01, -3.18700634e-02, + -7.24879727e-02, 8.75461340e-01, -1.03780520e+00, -1.56224012e-01}}, + + {{ 9.38491244e-03, -5.82212536e-03, -1.77763566e-01, 1.35073289e-01, + -2.81324446e-01, -1.78816244e-02, 5.96338660e-02, -1.12686682e+00}, + {-2.79342949e-01, -1.20719504e-02, -2.85210103e-01, -5.21655619e-01, + -5.78010798e-01, -3.50730449e-01, -6.03034794e-01, -3.81342798e-01}, + {-3.35834831e-01, -7.57841021e-02, -3.14144135e-01, -3.56026322e-01, + 2.93733418e-01, -3.80042732e-01, -3.84311169e-01, 1.53404564e-01}}, + + {{-1.49145782e-01, -7.77530745e-02, -6.28429055e-01, -3.26855928e-01, + 5.74433565e-01, 1.15268193e-01, 9.62793827e-01, 6.99727774e-01}, + {-2.98085302e-01, -4.21118110e-01, 1.00288801e-01, -3.49732578e-01, + -6.03380501e-01, -1.87873888e+00, -1.07085931e+00, -1.22356844e+00}, + {-1.17285287e+00, -6.16871119e-01, -9.09132481e-01, -5.55630445e-01, + -9.31677580e-01, 2.23639667e-01, -2.07305402e-01, 2.35256457e+00}}}, + + + {{{ 1.11339641e+00, 1.45588487e-01, -2.69933566e-02, -1.07540404e-02, + -1.87627584e-01, 1.56599772e+00, 4.66181040e-01, -1.54154971e-02}, + { 2.88851291e-01, -3.99523735e-01, 1.49647489e-01, 4.97477740e-01, + 8.90353322e-01, -9.61372495e-01, -7.45127261e-01, -1.15225911e+00}, + { 1.02566563e-01, -1.10367965e-02, 4.16803956e-02, 1.61582872e-01, + -3.08946699e-01, -3.42980027e-01, -5.20334542e-01, -2.00327918e-01}}, + + {{ 3.55501145e-01, -2.61206836e-01, 1.61056697e-01, 4.78905499e-01, + -1.35903940e-01, -3.37988704e-01, 1.63807571e-01, -4.88312304e-01}, + { 2.53988028e-01, 3.34258340e-02, -1.60538912e-01, -7.25834258e-03, + 3.79052520e-01, -1.00679055e-01, 4.83052731e-01, 2.81909674e-01}, + { 8.82359520e-02, 2.36608580e-01, 3.02532583e-01, 2.77882874e-01, + -4.04118001e-01, 3.32707539e-02, 2.83442557e-01, -1.02659547e+00}}, + + {{ 2.42002085e-01, -2.90856123e-01, 1.50879830e-01, 2.37718597e-01, + 5.35828434e-02, 2.55863070e-01, 6.81413934e-02, -1.85862239e-02}, + { 1.15549780e-01, -1.87653646e-01, 9.90262628e-02, -1.99345514e-01, + 3.03384900e-01, -8.26021850e-01, -1.80881232e-01, 3.50813717e-01}, + { 5.33466451e-02, -2.22895425e-02, 6.39825910e-02, -1.77774340e-01, + -1.64044857e-01, 2.88403869e-01, 5.01655340e-01, -7.54725814e-01}}}, + + + {{{-5.69275737e-01, -1.44704953e-01, -1.32301403e-02, -2.06316352e-01, + 2.57847458e-01, 4.75905150e-01, 6.71548426e-01, 5.80143869e-01}, + {-1.20478414e-01, 1.40501326e-03, 1.28627673e-01, -1.71165839e-01, + 1.95967436e-01, -3.99610460e-01, 4.21942264e-01, 1.18285120e+00}, + {-2.94630565e-02, 2.98804522e-01, 4.33909148e-01, -5.03061041e-02, + 3.15030366e-01, 5.47393322e-01, 3.59412044e-01, -3.14682543e-01}}, + + {{-1.18473984e-01, -1.87123105e-01, 1.19237103e-01, 6.81089237e-02, + 2.26766810e-01, -1.31360197e+00, 1.24392080e+00, -9.83798027e-01}, + {-5.04389524e-01, -5.79017997e-02, -1.13328218e-01, 1.59071147e-01, + -8.06046203e-02, -9.03668255e-02, -1.45191729e-01, -1.45499334e-01}, + {-2.88236201e-01, -2.73678929e-01, -5.23932539e-02, -3.44140917e-01, + 4.50699568e-01, 2.46717811e-01, 8.62343609e-01, 5.60790241e-01}}, + + {{-5.51123977e-01, 2.13474020e-01, -2.21770972e-01, 4.12636586e-02, + 2.67690957e-01, -8.82002175e-01, 1.29540995e-01, -1.01154017e+00}, + {-3.99134398e-01, -1.95320368e-01, -1.12622432e-01, -1.03559703e-01, + -3.39476205e-02, -5.95962889e-02, 1.46788985e-01, -1.27736461e+00}, + {-3.69711995e-01, -1.95615157e-01, 1.31804317e-01, -2.69407947e-02, + 4.15237201e-03, 4.30754393e-01, 3.23509961e-01, -3.10961530e-03}}}, + + + {{{-3.40404600e-01, -2.15241492e-01, 1.87842697e-02, -1.35442704e-01, + -7.38204598e-01, -9.93033469e-01, -2.01783150e-01, -1.12740147e+00}, + {-4.41906482e-01, -1.12877553e-02, -2.52870440e-01, -2.41072893e-01, + -2.36144617e-01, -2.17115387e-01, -4.29348022e-01, -6.70753241e-01}, + {-6.05952501e-01, 4.99265231e-02, -2.81475931e-01, -3.96228731e-02, + -4.49264020e-01, -7.88760465e-03, -1.15111127e-01, -8.04326162e-02}}, + + {{-2.96022236e-01, 2.39864411e-03, -3.01369041e-01, -1.42660543e-01, + -4.09334421e-01, 7.90038288e-01, -7.44009078e-01, 5.73048055e-01}, + {-5.37143111e-01, -4.10919189e-01, -1.86617360e-01, -3.80022854e-01, + -7.22327083e-02, -2.08498865e-01, -4.66449320e-01, 3.79843533e-01}, + {-4.66720879e-01, -1.98662609e-01, -1.37147412e-01, 1.35559794e-02, + -4.00046438e-01, -2.77655870e-01, -5.65892398e-01, -1.45079613e-01}}, + + {{-4.13829416e-01, -4.07270461e-01, 1.24931015e-01, -2.53443301e-01, + -4.98216063e-01, 1.60977751e-01, -3.46749306e-01, 2.32286572e-01}, + {-4.46612626e-01, 1.05372593e-01, -1.82100624e-01, 1.69861674e-01, + -3.97499025e-01, 2.38893062e-01, 4.56940569e-02, 9.85158801e-01}, + {-2.49196440e-01, 3.06747198e-01, -2.43011162e-01, 1.34715356e-03, + 5.05368486e-02, -2.72911251e-01, -8.50882605e-02, -5.20366132e-01}}}, + + + {{{ 1.87496185e-01, -1.04237519e-01, -2.06886411e-01, -1.18221164e-01, + 2.37238891e-02, 5.02522171e-01, 5.53376138e-01, 1.29373208e-01}, + { 5.35094976e-01, 2.12928951e-01, -2.77048975e-01, -1.41780764e-01, + -3.30857843e-01, -2.36419559e-01, -8.26927423e-02, -2.35654533e-01}, + { 1.25238204e+00, -7.85759389e-02, 4.49121535e-01, 1.82213306e+00, + -2.62419730e-01, 6.47982538e-01, 4.46430624e-01, 3.23942870e-01}}, + + {{ 1.44531384e-01, 2.76822504e-02, -1.56076699e-01, -1.99628279e-01, + 6.58964217e-02, 2.10449100e-01, 1.29623845e-01, 2.65166104e-01}, + { 1.04277998e-01, 1.19952179e-01, 4.03417677e-01, -5.55357859e-02, + 2.48858571e-01, 1.37825727e-01, 1.65104687e-01, 1.14474885e-01}, + { 2.11274818e-01, -1.44273698e-01, -5.70270658e-01, 2.58148491e-01, + 8.53014469e-01, -1.09135151e-01, 6.10858276e-02, -4.28746790e-01}}, + + {{-4.42504734e-02, -3.12836729e-02, -1.50364146e-01, -1.96694508e-01, + 2.15153232e-01, 6.72778711e-02, 6.13361180e-01, -3.29098254e-01}, + { 1.08575463e-01, -1.94127738e-01, 2.24226326e-01, -9.41353813e-02, + 4.22435492e-01, 6.66547358e-01, 1.89089596e-01, 8.41061398e-03}, + { 7.71945491e-02, -3.71162355e-01, 2.42680833e-01, -3.96408409e-01, + -6.83041036e-01, -1.00476541e-01, 2.64683031e-02, -6.66088164e-02}}}, + + + {{{ 2.32332766e-01, -8.30353796e-02, 2.34861270e-01, 2.44577304e-01, + -1.93917900e-01, 2.78614312e-01, 1.12436092e+00, -8.89345780e-02}, + { 1.78995281e-01, -4.08112668e-02, 1.88567024e-02, 9.44507718e-02, + -2.04068765e-01, -5.40804088e-01, 2.07586139e-01, 7.18434691e-01}, + { 4.00673211e-01, -1.70275662e-02, -5.50989687e-01, -3.66926759e-01, + 9.51336604e-03, 4.12850738e-01, -3.39321762e-01, 4.56653029e-01}}, + + {{ 2.95069098e-01, -1.04619451e-01, -2.18423516e-01, 8.51525553e-03, + 5.45472383e-01, -4.61284250e-01, 7.87971914e-01, -4.94643450e-01}, + { 7.26899505e-02, -1.83244780e-01, -1.11608483e-01, -2.07709625e-01, + -5.76573133e-01, -3.64835024e-01, -4.84763458e-02, -2.61485457e-01}, + { 2.30196655e-01, 4.39063534e-02, -1.32367499e-02, 5.22042438e-02, + -3.46815586e-02, 4.47798878e-01, -1.08758974e+00, 7.32784748e-01}}, + + {{ 1.00673878e+00, 4.26154315e-01, -5.62939703e-01, -7.16099679e-01, + -4.31053758e-01, 3.94419730e-01, -1.58385384e+00, 1.29069102e+00}, + { 3.15715760e-01, -5.77422092e-03, -3.86218905e-01, -1.02884248e-02, + -1.13787346e-01, 1.40141785e+00, -1.02768861e-01, 9.83609259e-01}, + { 2.96130121e-01, -1.23557016e-01, -1.67094484e-01, -7.18088865e-01, + -1.23698369e-01, 4.53486294e-01, 1.02169466e+00, -2.38222599e-01}}}}; + +const float conv2d_biases[KERN_NUM] = + { 0.21551223, -0.31765768, 0.22638814, -0.35404113, 0.07472906, 0.36022452, + -0.20800653, -0.17384842, 0.20230661, 0.43323797, -0.5071992, -0.259725, }; + +const float dense1_weights[DENSE1_NUM][CONV_NUM+2] = +{{ 4.06228572e-01, -7.41613328e-01, -2.23374844e-01, 7.44782239e-02, + 2.48067640e-02, -2.27613121e-01, -6.47971809e-01, 1.28285313e+00, + 5.86468101e-01, -3.73738319e-01, -2.23231539e-01, 4.45190251e-01, + 2.06922181e-02, -2.95541078e-01, 3.04341428e-02, 6.99095726e-01, + 1.80339906e-02, 5.23699939e-01, 2.08022177e-01, 4.74186093e-01, + -1.24203295e-01, 3.58305871e-02, 4.91432637e-01, 7.70201683e-01, + 1.55751958e-01, 2.27950737e-01, 5.13731182e-01, -5.06163538e-01, + 3.00930798e-01, -1.50966540e-01, -4.47928756e-01, -4.19993907e-01, + -7.99737796e-02, -2.48556405e-01, 1.16666697e-01, 2.03943029e-01, + -5.20569742e-01, -3.24475206e-02, -4.49787468e-01, 1.42139986e-01, + 3.38699877e-01, 1.99223965e-01, 1.51889116e-01, 7.36003995e-01, + 2.57023335e-01, -4.09291506e-01, 1.51876926e-01, -7.91447833e-02, + 1.41260609e-01, -1.96711078e-01, -3.12285006e-01, -1.09922580e-01, + -6.37593493e-02, 1.20308653e-01, 3.23359787e-01, -4.74158257e-01, + -9.82418507e-02, -2.79658407e-01, 1.66076854e-01, 3.86836119e-02, + 4.11024243e-02, -5.46849310e-01, 5.45090973e-01, 7.55832076e-01, + 2.95277983e-01, 3.75339063e-03, -5.36147237e-01, 4.90311235e-01, + -4.27326947e-01, -7.50880480e-01, -3.44209582e-01, -1.87809676e-01, + 1.09596944e+00, 6.27729669e-02, -3.35578680e-01, -5.40396035e-01, + 4.42050159e-01, 1.74014568e-01, -4.92784649e-01, 3.80638927e-01, + -2.53892630e-01, -3.62113118e-01, 1.39508054e-01, -1.90396190e-01, + 6.44086123e-01, 1.54427394e-01, 2.21371680e-01, 3.99466991e-01, + 3.94383311e-01, 2.57056981e-01, 2.10282698e-01, 4.09887761e-01, + 4.50775884e-02, -7.18773976e-02, -3.33721042e-01, 7.22119749e-01, + 6.81123435e-02, 1.77889884e-01, 9.53827798e-01, 2.06382796e-02, + -2.96764374e-01, 1.80812329e-01, -4.55552936e-01, -4.73149866e-01, + 1.34327903e-01, -2.41231233e-01, 1.68755010e-01, -1.89535588e-01, + 1.50274086e+00, -7.32448339e-01}, + { 2.32846245e-01, -4.63152796e-01, -1.09408543e-01, -5.11292182e-02, + 3.07338953e-01, -3.58126312e-01, -3.00262511e-01, 6.42869294e-01, + -6.11320674e-01, -1.32262811e-01, 2.88985252e-01, 2.50611126e-01, + 2.74323404e-01, 3.31833243e-01, 5.54003537e-01, 1.24270678e-01, + 2.07285415e-02, 1.57037787e-02, 4.09015596e-01, 6.78341210e-01, + -4.94367734e-04, -8.04133266e-02, 5.93126655e-01, -1.29027769e-01, + 2.04643965e-01, -3.89791548e-01, 4.63460296e-01, 3.12390029e-01, + 2.77928151e-02, -4.38453674e-01, -3.03605318e-01, 5.55377722e-01, + -2.38199413e-01, -2.43061572e-01, 1.88931655e-02, 1.64007545e-01, + 1.70167565e-01, 8.45546424e-02, 8.15757275e-01, -4.38511670e-01, + -5.71253933e-02, -2.24509552e-01, 1.26665562e-01, 7.21649408e-01, + -9.30702835e-02, -4.58674639e-01, 7.47087002e-02, 3.91607970e-01, + 1.26554757e-01, -4.36402172e-01, 2.60388047e-01, -6.57567158e-02, + 1.10876866e-01, 1.92660451e-01, 4.75848056e-02, -5.96187301e-02, + 1.76178113e-01, 2.79925913e-01, -4.72383387e-02, 3.26648802e-02, + 4.81916398e-01, -6.82933629e-02, -2.91907847e-01, -2.15239346e-01, + -1.78936243e-01, -1.35173097e-01, -4.42836523e-01, 3.57996486e-02, + -4.80645537e-01, 4.51418698e-01, 4.51305151e-01, -7.80054569e-01, + 6.30977154e-01, 5.16964018e-01, 3.19620520e-01, -6.05815947e-01, + 6.63825810e-01, 2.15823650e-01, 4.20093894e-01, -1.88995436e-01, + -2.86813319e-01, -3.04082427e-02, -3.82405460e-01, -1.21005952e-01, + -2.09066525e-01, -2.57442176e-01, -1.50652215e-01, -2.13007614e-01, + -1.38253376e-01, -6.25025108e-02, 6.26580976e-03, -1.62733749e-01, + -4.12442565e-01, -7.01537371e-01, 3.41521353e-01, -2.86700428e-01, + 3.69466215e-01, -3.68698627e-01, -2.65971005e-01, -6.05540395e-01, + 4.35471870e-02, 3.40035707e-01, -4.25517224e-02, -3.69021088e-01, + 3.36573064e-01, -4.19275612e-02, 7.42606163e-01, 4.69970673e-01, + 1.66558957e+00, -8.62977147e-01}, + {-1.50420442e-01, 3.27723593e-01, 2.70914465e-01, 3.63366157e-01, + -2.87254173e-02, 2.89388359e-01, -3.78421038e-01, -3.85220796e-01, + 2.40463495e-01, 7.29239464e-01, 2.51820125e-02, 4.79685396e-01, + -7.38927007e-01, -3.81343782e-01, -2.11228386e-01, 9.63068455e-02, + 2.51164466e-01, -1.31304041e-01, -3.59961018e-02, -5.89310005e-02, + 4.38776433e-01, 2.41665140e-01, 2.42128044e-01, -3.97607446e-01, + 3.84551316e-01, 4.56775539e-02, -8.00460875e-01, 3.76870662e-01, + -9.71944556e-02, 5.93733191e-01, -2.49782071e-01, -3.42376441e-01, + 4.42477226e-01, 1.86995164e-01, -3.78751367e-01, -1.42674111e-02, + -3.57042015e-01, -1.04567958e-02, 1.74153566e-01, -4.83943790e-01, + 4.74687696e-01, -1.75777480e-01, -4.79088545e-01, -2.56521016e-01, + -2.26456136e-01, 2.56622344e-01, -9.81610715e-01, 2.09862888e-01, + 1.40005693e-01, -5.03578365e-01, 2.02479899e-01, 5.98863542e-01, + 3.78467172e-01, 2.36590430e-02, 4.61631864e-01, -3.57476592e-01, + 5.67828953e-01, 4.22933638e-01, -2.50779241e-01, 4.08837527e-01, + -1.39591694e-01, 1.82721183e-01, -8.69513988e-01, 5.37809670e-01, + 5.25249004e-01, -1.39368717e-02, 2.58690149e-01, -1.17836790e-02, + -1.17229819e-01, -2.74775803e-01, -4.42928225e-01, -1.57998040e-01, + -9.72151995e-01, 2.07844526e-01, 1.97639525e-01, 8.46566081e-01, + 2.89488345e-01, 3.97289023e-02, 2.54243821e-01, -3.60215515e-01, + -2.05303907e-01, -1.00665323e-01, -9.71096992e-01, 1.12627782e-01, + -4.81037423e-02, 3.27269733e-01, -2.15288728e-01, 7.99601555e-01, + 1.52646318e-01, -1.80109113e-01, 4.32230532e-01, -1.44252270e-01, + -1.55263156e-01, 4.99388352e-02, -3.02762955e-01, -2.17776328e-01, + -4.87729937e-01, 6.25820518e-01, -7.34601915e-01, -2.54272133e-01, + 1.95429519e-01, 5.16721932e-03, 7.18319416e-02, -2.40736455e-01, + 1.99800372e-01, -1.43482694e-02, -9.79679674e-02, -9.79631618e-02, + -1.08423448e+00, 1.38025296e+00}, + {-1.28246784e-01, 1.14166129e+00, 2.79251575e-01, -7.39781618e-01, + 1.29016325e-01, -2.89545715e-01, -3.23933773e-02, -2.41330639e-02, + 2.33890325e-01, -5.50720803e-02, 1.02579214e-01, -2.27617234e-01, + 4.27415729e-01, 3.54092419e-01, -5.36675215e-01, 8.48463923e-03, + 1.20133586e-01, 1.99127614e-01, 1.54672563e-01, -1.26111761e-01, + -3.98427285e-02, -3.66860360e-01, -1.89652964e-01, 3.47080529e-01, + 2.56645232e-01, 6.27650261e-01, 2.43266866e-01, 6.60057127e-01, + -1.05226302e+00, 2.68542141e-01, 3.38851184e-01, 5.44604659e-01, + -4.12835032e-01, -4.24082041e-01, 1.38326570e-01, -4.28816438e-01, + 3.39343786e-01, -3.72202620e-02, -5.82139790e-01, -3.83841127e-01, + -6.05669558e-01, -6.62734210e-02, 1.98718831e-01, -9.25707631e-03, + -1.82875052e-01, -3.61956328e-01, -1.96978414e+00, 2.02707827e-01, + -1.89507902e-02, 4.00141448e-01, 6.35381341e-02, 3.98959100e-01, + -8.84148404e-02, -3.10060322e-01, -3.98255229e-01, 1.70258686e-01, + -1.13035031e-01, -3.24217796e-01, -4.43721622e-01, 3.71575713e-01, + -6.31576955e-01, 3.57670873e-01, -1.42170219e-02, -4.70316291e-01, + 2.34685943e-01, 4.31193151e-02, 3.23591530e-01, 2.12840363e-01, + 4.34224010e-01, -2.75835514e-01, -2.64059752e-01, 1.58100247e-01, + 2.29537971e-02, 1.71719249e-02, -1.18983507e-01, -9.89265926e-03, + -5.51557362e-01, -9.96260881e-01, 9.94420469e-01, 1.09114909e+00, + 9.42518190e-02, 4.42669749e-01, 3.25408340e-01, -3.72253358e-01, + 1.65087488e-02, 4.61166888e-01, 1.70251861e-01, 1.01557709e-01, + 3.67854089e-01, 5.12002945e-01, -2.32574679e-02, 3.75044435e-01, + -3.52458358e-01, -1.66309103e-01, -1.25979531e+00, -2.51802415e-01, + 5.53967655e-01, -5.31035423e-01, 4.32145149e-01, -4.64968711e-01, + 3.48759800e-01, -5.68263650e-01, -8.63164902e-01, -1.76375315e-01, + -3.53187062e-02, -1.08030879e+00, 8.93660355e-04, -4.17420834e-01, + 1.13089907e+00, 3.69692475e-01}, + { 9.80610847e-02, -5.31785846e-01, -1.35008857e-01, -5.67079306e-01, + 5.73168516e-01, -7.10398495e-01, 2.52778590e-01, -7.89616108e-02, + 9.64033697e-03, -4.10263985e-02, -7.19890356e-01, -3.66297871e-01, + 2.11642295e-01, 3.00263256e-01, 2.74222016e-01, -5.22637248e-01, + 3.95395309e-01, -5.16432226e-01, -5.58932759e-02, 3.13743949e-01, + -5.65953106e-02, 1.22147709e-01, 9.05415341e-02, 3.60068649e-01, + -3.11768521e-02, 3.76120597e-01, -5.16293384e-02, 2.76993006e-01, + -3.77445400e-01, -3.56407851e-01, -3.47224891e-01, -3.26946318e-01, + -3.23454142e-01, -1.94624469e-01, -2.58173078e-01, 8.20998728e-01, + 9.78740305e-02, -4.26262677e-01, -1.66933253e-01, -4.48713273e-01, + -2.53526241e-01, -1.27072603e-01, 4.99788582e-01, 1.10020131e-01, + -1.08198784e-01, -6.21029019e-01, 6.03354275e-01, 4.92923647e-01, + 3.00531864e-01, -1.62053168e-01, 3.79018962e-01, 5.44460490e-02, + -8.17684233e-01, 1.68140605e-01, -3.11053306e-01, 8.89396947e-03, + 2.87967801e-01, 3.56038719e-01, 7.09124923e-01, 4.37001795e-01, + 3.14185500e-01, 9.73315984e-02, 2.93759406e-01, 4.48500752e-01, + -7.73063451e-02, 4.96168286e-01, 9.35381129e-02, -2.63951778e-01, + 1.63728267e-01, 2.05275834e-01, 1.24873228e-01, -3.19005027e-02, + 5.24536729e-01, -2.93515384e-01, -3.59863974e-02, -1.64728057e+00, + -2.55686671e-01, 2.57195771e-01, -3.80571365e-01, -3.11397910e-01, + 1.91901520e-01, -5.53345978e-01, -8.16301882e-01, -7.80843198e-02, + -5.84474728e-02, -1.03637852e-01, 2.13315099e-01, -1.04079604e-01, + -7.32726097e-01, 3.92259508e-01, 1.61613524e-01, 2.84704953e-01, + -1.97026759e-01, -2.22950175e-01, -4.17439103e-01, 4.44597006e-02, + 2.46569127e-01, 2.21579298e-02, 3.70952755e-01, -6.02472305e-01, + 4.25312281e-01, 4.66953367e-01, -7.26197243e-01, 7.34446719e-02, + 7.06891567e-02, -6.94029093e-01, -5.06229877e-01, 6.74747229e-01, + 1.21679235e+00, -9.45680439e-01}, + {-2.35322416e-01, 9.75693405e-01, 3.48640501e-01, 4.71410304e-01, + -1.45775929e-01, 4.15895611e-01, -3.87384087e-01, -6.01446867e-01, + 8.65103304e-01, 2.31759161e-01, -4.94894743e-01, 4.51495200e-01, + 9.25993919e-02, 7.71869957e-01, -2.52576619e-01, -3.53226483e-01, + 3.52909207e-01, 3.61111224e-01, -3.03340733e-01, -5.76687515e-01, + 5.99127889e-01, 4.30130005e-01, -1.61437735e-01, -9.81296003e-02, + 1.59774765e-01, 6.32657707e-02, -6.97749615e-01, 1.02005698e-01, + -2.83054728e-02, 1.90042630e-01, 4.11086798e-01, 6.96688220e-02, + 5.95504880e-01, 5.03776133e-01, -6.90375268e-01, -3.38298172e-01, + -1.77616179e-01, 2.78802216e-02, 4.44879413e-01, 1.93969488e-01, + -1.07216604e-01, -2.09951892e-01, 1.65654197e-01, -3.65995944e-01, + 1.15191884e-01, 6.06802702e-02, -1.77499712e-01, -2.17533231e-01, + 1.14018321e-01, -2.27753818e-01, 1.11140274e-01, -2.54010428e-02, + 3.24306279e-01, -3.24656427e-01, -3.85966599e-01, -3.81099105e-01, + 3.84054966e-02, 4.24792588e-01, 9.30495188e-02, -4.14760597e-02, + 5.71231954e-02, 1.75331086e-01, 1.55867159e-01, 2.04768151e-01, + 2.60801375e-01, -4.40252721e-01, 3.53899688e-01, 4.61664200e-02, + 6.10328186e-03, 1.75819755e-01, -7.32586563e-01, -2.07543597e-01, + 7.13850558e-02, 1.19953968e-01, -2.72114985e-02, 7.05860913e-01, + -4.11395460e-01, -6.42587841e-02, 4.36197758e-01, -1.73769146e-02, + 3.19020599e-01, 4.21021730e-01, -5.63621104e-01, -5.93825340e-01, + -4.55496877e-01, -1.44205913e-01, -1.42076015e-02, 2.91928709e-01, + -4.52372059e-02, -2.63809502e-01, -3.39989305e-01, -1.23235665e-01, + 2.32282624e-01, 1.65985629e-01, -5.25409281e-01, 1.24411248e-01, + 1.73876714e-02, 5.73173687e-02, 9.60903019e-02, 2.83566415e-01, + 1.90093040e-01, -9.12917927e-02, 6.52547657e-01, -6.16001368e-01, + 5.06949008e-01, 4.69621330e-01, -7.82217979e-01, 1.79912582e-01, + -1.25807452e+00, 1.06386662e+00}, + { 4.00046676e-01, -2.60405362e-01, -1.87681824e-01, -7.34393001e-02, + 3.41525733e-01, -1.31432101e-01, 3.52585942e-01, 4.06813174e-01, + -5.00551224e-01, -1.96184397e-01, -1.12247966e-01, 1.23960897e-01, + 1.84356779e-01, 3.00904214e-01, 8.07129145e-02, 3.89876246e-01, + -1.22747928e-01, -5.06063879e-01, -8.11494112e-01, 7.02553913e-02, + -1.46107972e-01, -5.22226453e-01, -2.76044518e-01, -1.99103221e-01, + -1.88666344e-01, -1.37862220e-01, -2.55549923e-02, -6.98320627e-01, + 8.23347121e-02, 8.88133422e-02, 2.39492372e-01, 6.99104294e-02, + 2.77029723e-01, 1.17101498e-01, -1.30357400e-01, 1.84938967e-01, + 4.22685504e-01, -2.15878904e-01, 6.31250963e-02, -4.62610811e-01, + 3.48875016e-01, -6.49722159e-01, 3.83202285e-01, -2.14621305e-01, + -1.61879405e-01, -5.21908224e-01, 2.87424415e-01, -5.01513422e-01, + -1.70335293e-01, 5.20302296e-01, 1.07131086e-01, -1.58798948e-01, + -2.09380314e-02, 3.51204783e-01, 4.36178833e-01, 2.54874211e-02, + -4.84432690e-02, -1.02803066e-01, -6.86542451e-01, 9.77449790e-02, + -3.59397829e-01, -6.74659982e-02, 2.66926318e-01, -7.99416006e-02, + -1.18375808e-01, -4.19581115e-01, -9.45972025e-01, 4.69310164e-01, + -5.22936702e-01, -5.36772430e-01, 3.30661416e-01, 7.28677571e-01, + 2.79273301e-01, -1.62276351e+00, 2.73032337e-01, -1.25577345e-01, + -4.11935776e-01, -3.20647538e-01, -6.64878637e-03, 5.19602001e-01, + -4.12704647e-01, -6.06038421e-02, -1.20667115e-01, -3.88988763e-01, + 3.33572835e-01, -7.98251107e-02, -2.54545540e-01, -7.34247506e-01, + 5.73131502e-01, 2.21578907e-02, -4.06229228e-01, -3.15345466e-01, + -3.95154089e-01, -5.91075063e-01, 4.47664142e-01, 5.91508567e-01, + 3.03558826e-01, -9.36257318e-02, -3.53487164e-01, -9.75664239e-03, + 8.94740999e-01, 1.18313953e-01, -1.16540097e-01, 4.27018881e-01, + 3.41691636e-03, 3.72850686e-01, 8.81363034e-01, 2.77682722e-01, + 1.71823704e+00, 6.71613514e-01}, + {-4.97508012e-02, -1.77405849e-01, 2.26657793e-01, 1.13004088e+00, + -1.42710097e-02, 4.60662320e-03, -7.96439290e-01, 2.35600352e-01, + -5.89315370e-02, -4.23512816e-01, -4.52666312e-01, 1.13249493e+00, + -1.57961756e-01, -1.98928148e-01, 3.58975679e-01, -4.90440220e-01, + 3.58261198e-01, -4.54496205e-01, 1.23928678e+00, -5.91432035e-01, + -7.82071769e-01, -2.55386293e-01, -3.06578666e-01, 6.09946430e-01, + -1.05639189e-01, -1.12135720e+00, 5.63612461e-01, 3.17661941e-01, + 2.45968938e-01, -3.28163147e-01, 2.86680490e-01, -2.54227132e-01, + -8.71704876e-01, -1.06603980e+00, -3.72786731e-01, 5.04247129e-01, + 2.64982104e-01, -1.86874315e-01, 1.97739433e-02, -4.31704015e-01, + -3.54754150e-01, -5.97361363e-02, -3.77056092e-01, 1.61705092e-01, + -3.69661033e-01, 2.90479422e-01, 2.16860980e-01, 4.78633970e-01, + 2.55774885e-01, 1.11045435e-01, 5.45953177e-02, 1.12429872e-01, + -5.25927663e-01, -2.34174117e-01, 3.10357451e-01, -2.48194620e-01, + -4.66530949e-01, -2.12819383e-01, 4.16852653e-01, 1.69538185e-01, + 4.92704213e-01, -2.95594096e-01, 2.53180861e-01, 5.52279830e-01, + -6.11510836e-02, -9.86654544e-04, 3.49835366e-01, -2.53509194e-01, + -7.36111961e-03, -3.67684454e-01, -4.51651961e-01, 1.08749196e-01, + 1.11174174e-01, 4.86273766e-01, -1.80751666e-01, -5.40973842e-02, + -2.96105534e-01, -1.22372180e-01, -1.61681294e-01, 8.99291597e-03, + 1.50684174e-02, 1.87431499e-01, 1.05070329e+00, 1.09207654e+00, + 2.30983943e-02, -5.73066831e-01, 6.54381573e-01, -6.29863381e-01, + 2.25060016e-01, -2.11774290e-01, -2.27845535e-01, 3.99592370e-02, + 1.39489025e-01, -2.67062098e-01, 3.75814617e-01, -2.73656696e-02, + -5.65327145e-02, -1.57604069e-01, 5.60901046e-01, 6.02497339e-01, + -2.67302424e-01, -4.83048223e-02, -6.89045787e-01, -1.09500829e-02, + 1.06619298e-01, 2.69855946e-01, 3.52855742e-01, 5.22762299e-01, + 1.24959135e+00, -2.03338787e-01}, + { 8.07366073e-01, 1.54466424e-02, -3.01199779e-02, 1.88570917e-01, + 2.91147977e-01, 5.08795679e-01, -1.14991486e-01, 4.71425027e-01, + -4.55019325e-01, 1.17165104e-01, 1.13269977e-01, 2.25831449e-01, + -2.61712492e-01, -3.20443749e-01, -2.40957811e-01, -1.67064235e-01, + -2.96177655e-01, -4.15179908e-01, -1.25360876e-01, -1.42891973e-01, + -9.22787562e-02, 4.59067076e-01, -7.59499073e-01, 9.75116253e-01, + 1.26480937e-01, 1.53265685e-01, -6.06761165e-02, -8.52382779e-01, + -3.49394418e-02, -8.85093749e-01, -3.40414536e-03, -1.50464699e-01, + 2.04406545e-01, -2.29294747e-01, -1.00135553e+00, -8.71166140e-02, + -5.85419908e-02, 9.54704657e-02, 3.21217030e-01, -2.05311239e-01, + 2.39588067e-01, -4.12305206e-01, -1.78912267e-01, -4.09034580e-01, + 3.05660844e-01, 8.01335633e-01, 6.43447816e-01, -1.12771261e+00, + 5.04007101e-01, 2.45871946e-01, 1.02434695e-01, 6.99105486e-02, + -1.31066129e-01, -5.21581113e-01, -7.56868720e-01, -2.46530175e-01, + 1.88600376e-01, -4.43656072e-02, -1.39959857e-01, -1.85262576e-01, + 3.57368350e-01, 1.23204401e-04, 2.58713305e-01, -4.01726335e-01, + -7.70495310e-02, -1.52871177e-01, 9.12291884e-01, 3.06256711e-01, + 4.88158055e-02, 1.49135008e-01, -9.94919896e-01, 5.60268164e-01, + 4.21766281e-01, -1.85062125e-01, -1.15824491e-01, 1.78033523e-02, + -1.06798187e-01, -3.32529575e-01, 9.30125594e-01, -1.96749359e-01, + -1.82206422e-01, -7.47020364e-01, 1.08525991e+00, -1.12785988e-01, + -3.64625096e-01, -2.78363377e-01, 1.24719128e-01, 4.19646531e-01, + -5.09201586e-01, 5.70352256e-01, 1.09643050e-01, -2.65687764e-01, + 4.19999391e-01, 3.31714541e-01, -7.49212652e-02, 2.38306999e-01, + -2.30421945e-01, -4.10445362e-01, 3.15422863e-01, 3.85758668e-01, + 2.95245111e-01, 2.85367817e-01, -9.72485423e-01, 4.23224002e-01, + -2.46022314e-01, -1.64679512e-01, -4.33601916e-01, 4.31729853e-01, + 3.38295192e-01, -9.83332932e-01}}; + +const float dense1_biases[DENSE1_NUM] = + {-0.00150063, 0.17043383, 0.07469349, -0.1820892, 0.3522259, -0.01307535, + 0.1830328, -0.14784561, -0.11778016}; + +const float dense2_weights[DENSE2_NUM][DENSE1_NUM] = + {{-0.91616356, -0.8191251, 0.2304515, -0.46674383, -0.12716208, 0.19009136, + 0.9481145, 0.786934, -0.05967447}, + { 0.7176923, -0.34126613, -0.18793371, 0.02908552, 0.19781275, -0.15690081, + 0.5066819, 0.31012172, -0.05247808}, + {-0.90550727, -0.6736895, 0.43315464, 0.44159532, -0.4552563, -0.20423923, + 0.03030953, 0.08084394, 0.10576643}, + {-0.19233012, 0.07693521, -0.61384356, 0.5544418, 0.7325696, -0.9080967, + 0.65267634, 0.20705403, -0.23490039}, + { 0.15847632, 0.22189383, 0.9778388, -0.51625603, -0.17450581, 0.5792787, + -0.52009386, -0.062342, -0.6426366, }, + { 0.35159343, 0.6470002, 0.03019641, 0.5698466, 0.4783126, -0.14683609, + 1.0136565, 0.59326154, 0.49917307}, + {-0.40960982, -0.5808767, -0.7418851, 0.10186316, 0.52695566, -0.23400578, + 0.27793688, 0.23127404, 0.400742, }, + { 0.71803457, -0.08210561, 0.50707227, -0.44771287, -0.6247654, 0.7238574, + 0.260964, -0.48235837, -0.6336932, }}; + +const float dense2_biases[DENSE2_NUM] = + { 0.46612826, 0.1113046, 0.23074877, -0.6863273, 0.12243648, -0.05102318, + -0.45171046, 0.11097905}; + +const float output_weights[OUTPUT_NUM][DENSE2_NUM] = + {{ 0.57804793, -0.37943769, 0.6814687, -0.394456, 0.14942208, -0.4691155, + -1.3311554, 0.39076784}, + {-0.5780325, 0.37945127, -0.68145305, 0.39450976, -0.1494192, 0.46910775, + 1.3288169, -0.39078313}}; + +const float output_biases[2] = { 0.26156798, -0.26153848}; diff --git a/include/weights.h b/include/weights.h new file mode 100644 index 0000000..3c83010 --- /dev/null +++ b/include/weights.h @@ -0,0 +1,18 @@ +#define KERN_NUM 12 +#define KERN_CHAN 8 +#define KERN_SIZE 3 +#define KERN_OSIZE (5-KERN_SIZE+1) // 5 +#define CONV_NUM (KERN_NUM * KERN_OSIZE * KERN_OSIZE) // 108 + +#define DENSE1_NUM 9 +#define DENSE2_NUM 8 +#define OUTPUT_NUM 2 + +extern const float conv2d_weights[KERN_NUM][KERN_SIZE][KERN_SIZE][KERN_CHAN]; +extern const float conv2d_biases[KERN_NUM]; +extern const float dense1_weights[DENSE1_NUM][CONV_NUM+2]; +extern const float dense1_biases[DENSE1_NUM]; +extern const float dense2_weights[DENSE2_NUM][DENSE1_NUM]; +extern const float dense2_biases[DENSE2_NUM]; +extern const float output_weights[OUTPUT_NUM][DENSE2_NUM]; +extern const float output_biases[2]; -- cgit v1.3.1