summaryrefslogtreecommitdiff
path: root/include/ct1973.c
blob: 78be1f5bc5278fcf0d6450a4db5bb5399e37cc44 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
#include "ct1973.h"

float flattened[CONV_NUM+2];
float dense1[DENSE1_NUM];
float dense2[DENSE2_NUM];
float output[OUTPUT_NUM];

#define RELU(x) ((x) = ((x)<0)?0:(x))

float
evaluate_black_win(void) {
	/* ------------------ *
	 *  Convolution layer *
	 * ------------------ */
	// for each kernel
	for (uint8_t k = 0; k < KERN_NUM; k++) {
		// 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];
				// 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;
							// 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;
							if (COUNT_AT(loc)>c) {
								if (c==0) {
									if (STONE_AT(loc) == STONE_STANDING) {
										lookup = (colours[loc] & 1) ? +0.25 : -0.25;
									} else if (STONE_AT(loc) == STONE_CAPSTONE) {
										lookup = (colours[loc] & 1) ? +1.00 : -1.00;
									} else {
										lookup = (colours[loc] & 1) ? +0.50 : -0.50;
									}
								} else {
									lookup = (colours[k] & (1<<c)) ? +0.50 : -0.50;
								}
							}
							flattened[k+KERN_NUM*(by+bx*KERN_OSIZE)]
								+= lookup*conv2d_weights[kx][ky][c][k];
						}
					}
				}
				/*
				 * RELU(flattened[k+KERN_NUM*(by+bx*KERN_OSIZE)]);
				 */
			}
		}
	}
	//	for (uint8_t k = 0; k < CONV_NUM; k++) RELU(flattened[k]);
	/* ------------------ *
	 *  First dense layer *
	 * ------------------ */
	flattened[CONV_NUM]   = (float)(white_count & 127)/21.0;
	flattened[CONV_NUM+1] = (float)(black_count & 127)/21.0;
	for (uint8_t d1 = 0; d1 < DENSE1_NUM; d1++) {
		dense1[d1] = dense1_biases[d1];
		for (uint8_t fl = 0; fl < CONV_NUM+2; fl++) {
			dense1[d1] += flattened[fl]*dense1_weights[fl][d1];
		}
		RELU(dense1[d1]);
	}
	/* ------------------- *
	 *  Second dense layer *
	 * ------------------- */
	for (uint8_t d2 = 0; d2 < DENSE2_NUM; d2++) {
		dense2[d2] = dense2_biases[d2];
		for (uint8_t d1 = 0; d1 < DENSE1_NUM; d1++) {
			dense2[d2] += dense1[d1]*dense2_weights[d1][d2];
		}
		RELU(dense2[d2]);
	}
	/* ------------- *
	 *  Output layer *
	 * ------------- */
	float norm = 0;
	for (uint8_t out = 0; out < OUTPUT_NUM; out++) {
		output[out] = output_biases[out];
		for (uint8_t d2 = 0; d2 < DENSE2_NUM; d2++) {
			output[out] += dense2[d2]*output_weights[d2][out];
		}
		output[out] = exp(output[out]);
		norm += output[out];
	}
	return output[1]/norm;
}

const float conv2d_weights[KERN_SIZE][KERN_SIZE][KERN_CHAN][KERN_NUM] =
			{{{{-1.52278364e-01,  1.03239906e+00, -1.69998750e-01,
					 3.28446239e-01, -2.98646778e-01, -2.31816009e-01,
					 2.24368185e-01, -9.70985442e-02, -4.34917808e-01,
					-1.00076832e-01, -2.88538456e-01,  3.58222425e-01},
				 { 8.52329060e-02, -3.34037483e-01,  3.33178163e-01,
					-3.07036459e-01,  5.17786503e-01,  2.27628797e-01,
					-2.38799136e-02,  1.68639272e-01, -5.33522785e-01,
					 6.28996342e-02,  3.06313068e-01, -5.91589101e-02},
				 { 2.98692882e-01, -2.06623971e-01,  1.54391706e-01,
					-4.07881528e-01,  1.80600420e-01, -5.21647744e-02,
					 1.74179018e-01,  2.76725180e-02,  1.75483420e-01,
					 1.41332313e-01,  1.81717634e-01, -9.55164656e-02},
				 { 8.36686045e-02, -2.03471988e-01,  4.81641322e-01,
					 8.27000197e-03,  1.74469143e-01,  1.69933975e-01,
					 1.00771658e-01, -2.16257542e-01,  6.21540882e-02,
					-5.86523823e-02, -4.60806370e-01, -1.66974157e-01},
				 {-1.91876218e-01,  1.55409977e-01,  1.70580670e-01,
					-1.03917979e-01, -1.12191457e-02,  5.29826939e-01,
					-2.30258718e-01,  2.08036438e-01, -3.47821452e-02,
					 2.51102805e-01, -4.37570602e-01,  2.96806514e-01},
				 { 6.27692603e-03,  1.57991007e-01,  5.78779042e-01,
					-2.54516363e-01,  3.07232942e-02,  6.00457668e-01,
					-8.78550649e-01,  4.48868990e-01, -6.38340116e-02,
					-6.22016966e-01, -2.52180785e-01, -3.57714742e-01},
				 { 1.65783331e-01,  2.53018767e-01,  6.77831843e-03,
					 2.04402044e-01, -8.24117362e-01,  1.19925284e+00,
					 4.64725755e-02,  7.08908200e-01, -1.89178392e-01,
					-2.19439879e-01,  2.29597330e-01, -2.76999295e-01},
				 {-1.04630220e+00,  8.17987859e-01,  4.42456901e-01,
					 2.85443395e-01,  2.39065900e-01,  1.18651450e-01,
					 1.53244987e-01,  4.94983554e-01,  7.17750415e-02,
					-2.88021509e-02,  8.97209048e-01, -1.90168336e-01}},

				{{ 8.58160183e-02,  1.46481514e-01,  1.03891455e-01,
					-1.16557509e-01, -3.58780086e-01,  2.40591079e-01,
					 2.06735387e-01, -1.54696256e-01, -1.19829170e-01,
					-2.99005210e-01, -1.29495829e-01,  4.26674277e-01},
				 { 1.13599733e-01,  6.54282942e-02, -1.76414788e-01,
					-4.98969972e-01, -4.08899672e-02, -2.96610594e-01,
					 1.99086279e-01,  2.67860070e-02,  5.17043360e-02,
					 5.27123660e-02,  1.91101477e-01,  1.93848282e-01},
				 { 1.24456912e-01, -1.08601481e-01,  5.56847155e-02,
					 4.95976768e-02, -1.91795707e-01, -1.52025327e-01,
					 1.34597152e-01, -1.03885941e-02,  1.30910382e-01,
					 2.68805683e-01,  3.31735969e-01, -6.39373213e-02},
				 {-2.75373191e-01, -3.91001970e-01, -1.26616523e-01,
					-6.27890974e-02,  5.47006316e-02,  9.88506675e-02,
					 1.89847291e-01, -7.54318535e-02,  1.44524843e-01,
					-9.69550684e-02, -1.36665687e-01,  8.65793005e-02},
				 {-9.53994244e-02, -2.98490077e-01,  2.91107805e-03,
					-2.72898346e-01,  1.03589959e-01,  1.87709510e-01,
					-6.22010112e-01, -1.43359974e-01,  7.79479668e-02,
					-1.48746192e-01,  1.81610301e-01, -9.54001695e-02},
				 {-1.43155202e-01, -4.36782718e-01,  3.58005196e-01,
					-1.29423618e+00,  1.04121557e-02, -7.07999587e-01,
					-7.75147304e-02,  8.70023072e-01, -1.86105385e-01,
					-3.94797117e-01, -1.14149228e-01, -1.08768910e-01},
				 { 2.84852326e-01,  1.23015955e-01, -1.22683084e+00,
					-1.38842136e-01, -6.33746743e-01,  5.30605257e-01,
					-1.14629710e+00, -3.19251657e-01, -5.70127368e-01,
					 9.88973260e-01, -4.47637051e-01,  5.18911183e-01},
				 {-4.37036455e-02, -5.43752015e-01, -7.16969073e-01,
					 5.99599242e-01,  3.87030870e-01,  3.11269671e-01,
					 1.89794883e-01, -8.29630733e-01,  2.42851511e-01,
					-1.23371196e+00, -2.93400764e-01, -1.38194501e-01}},

				{{ 5.35271525e-01,  6.66989684e-02, -1.65629461e-01,
					-2.01478228e-01, -1.80033207e-01,  4.06787813e-01,
					 1.00070715e+00, -3.01814735e-01, -7.85149932e-02,
					-1.50735602e-01, -1.88065588e-01,  2.63355047e-01},
				 {-5.00412524e-01, -1.90732405e-01, -2.03409903e-02,
					-1.98189110e-01,  2.38295436e-01, -2.47143656e-02,
					-6.00254834e-01,  3.37071180e-01,  4.23165888e-01,
					-2.65452921e-01,  6.99680820e-02,  2.03216061e-01},
				 {-3.82761240e-01, -2.13005200e-01,  7.94329792e-02,
					 4.92421955e-01,  3.84473093e-02,  1.70240685e-01,
					-2.29060873e-01,  9.47807580e-02,  3.81714970e-01,
					-1.36454655e-02,  2.99959239e-02, -5.22340760e-02},
				 {-4.28911299e-01, -4.05182503e-02,  2.13805452e-01,
					-4.36528504e-01,  4.96205986e-02,  2.18408749e-01,
					-4.16713804e-01,  7.99139366e-02,  7.96985850e-02,
					-2.91076988e-01,  8.21361542e-01, -1.62787646e-01},
				 {-1.28506809e-01,  5.91988526e-02, -9.22855437e-01,
					 7.75153562e-02, -1.72869727e-01,  7.05382079e-02,
					-1.51134849e-01,  4.37536567e-01,  8.34513381e-02,
					-1.48681533e-02, -5.22021592e-01,  3.39559503e-02},
				 {-4.46616076e-02,  3.17870587e-01,  1.91788837e-01,
					-7.28926435e-02, -3.94944102e-01,  1.99817851e-01,
					 1.39683858e-02,  3.43056880e-02,  5.20610297e-03,
					 7.10945576e-02,  8.02381396e-01,  3.78778912e-02},
				 { 3.02464485e-01, -5.99524856e-01, -7.63040558e-02,
					 1.19659062e-02,  7.06251860e-02,  1.40034676e-01,
					 1.71706080e-02,  2.73633391e-01, -1.41412556e-01,
					-1.27275610e+00, -1.42847255e-01,  4.96406592e-02},
				 { 8.83499384e-01,  2.23184749e-01, -1.26656592e+00,
					-4.39328179e-02,  6.20003641e-01,  3.87599021e-01,
					-1.15112424e+00, -3.38468939e-01,  2.22663552e-01,
					-1.07704258e+00,  2.45495707e-01, -1.40621841e-01}}},


			 {{{-2.46321410e-01,  1.02315277e-01,  3.18865120e-01,
					 1.66382968e-01, -2.65338987e-01, -3.25932264e-01,
					 6.72269091e-02, -3.62757891e-02, -3.00062597e-02,
					-5.40204942e-01, -2.58353222e-02,  3.01069707e-01},
				 {-3.80932074e-03, -2.32811034e-01, -1.36587754e-01,
					-1.19526185e-01, -2.50134766e-01,  4.74178344e-01,
					-5.25788590e-02, -2.11588502e-01, -4.32134233e-02,
					 1.81564480e-01,  1.73846662e-01,  2.43306130e-01},
				 {-4.68671545e-02, -3.93961340e-01,  9.16158259e-02,
					-2.25613192e-01, -2.18583629e-01,  3.90818506e-01,
					-2.06463963e-01, -2.32078269e-01,  1.50218427e-01,
					 1.55933082e-01,  4.27869618e-01,  1.90650955e-01},
				 {-3.24853390e-01,  3.13622087e-01,  5.96540049e-02,
					 6.78882748e-02,  6.79070130e-02,  2.87805289e-01,
					-9.30028632e-02,  1.47727489e-01, -2.84985870e-01,
					-4.40416252e-03, -5.23765199e-02, -2.10437819e-01},
				 {-9.69866216e-02, -1.06876567e-02,  2.32235610e-01,
					 4.79422003e-01,  7.61053115e-02,  6.01372242e-01,
					-4.24658090e-01,  3.18205766e-02, -1.35015219e-01,
					-2.94991732e-01, -1.20683210e-02,  1.63507447e-01},
				 {-7.23203182e-01,  3.54305685e-01,  7.70522133e-02,
					-5.49711049e-01, -4.81010199e-01,  5.96723795e-01,
					-4.18118566e-01, -1.39284521e-01, -1.01914309e-01,
					 2.99641490e-01,  8.11885521e-02,  4.43702579e-01},
				 {-2.60988116e-01,  6.82867527e-01,  2.73653418e-01,
					-2.53143832e-02,  5.51311493e-01, -4.28519130e-01,
					 4.99354005e-01, -3.44483554e-01,  6.69235736e-02,
					 7.65151456e-02,  3.32721144e-01, -6.82664216e-02},
				 {-4.37593251e-01, -1.89089465e+00, -4.66393260e-03,
					 2.63640642e-01, -6.24097168e-01,  4.58847821e-01,
					 1.23356557e+00, -8.38246465e-01,  1.51093054e+00,
					-1.07512638e-01,  8.77661884e-01,  3.57259095e-01}},

				{{ 4.94640246e-02,  5.62086999e-02,  3.20767723e-02,
					 1.23812459e-01, -4.21273023e-01,  1.78027209e-02,
					-1.03463486e-01, -5.96054606e-02, -5.81143320e-01,
					-1.72426671e-01,  1.13657326e-01,  4.76617783e-01},
				 {-2.05271877e-02,  2.98685115e-02,  8.35569128e-02,
					 5.68790734e-02, -6.63485005e-02, -7.83027112e-02,
					-7.78839644e-03, -3.41531262e-02,  4.88802373e-01,
					 5.92765361e-02, -4.70981032e-01,  5.25605753e-02},
				 {-1.19257368e-01,  1.86082780e-01,  1.91862583e-02,
					 9.15394202e-02,  3.29669058e-01,  4.50029969e-01,
					-3.00555080e-01, -2.31377304e-01, -1.48823723e-01,
					 1.22882314e-01,  1.66313946e-01, -1.20544463e-01},
				 {-2.58052379e-01, -2.06214041e-02, -5.61359264e-02,
					 3.21150482e-01,  4.42231268e-01,  3.85449305e-02,
					-2.51881361e-01,  1.65854394e-01, -4.37333100e-02,
					-9.23354775e-02,  3.90853822e-01,  1.10149257e-01},
				 {-2.44020537e-01, -1.51531473e-01,  3.11589092e-01,
					 2.96806633e-01,  8.20496559e-01,  3.04850549e-01,
					-1.73858300e-01,  7.49965683e-02, -2.70220283e-02,
					-2.00422898e-01,  9.43027958e-02,  2.90607005e-01},
				 { 1.29800722e-01,  3.90353441e-01, -5.23519877e-04,
					-5.10549664e-01,  5.61565399e-01, -1.05784945e-01,
					-3.21605325e-01,  3.71382892e-01, -2.40828454e-01,
					-8.21608752e-02,  2.99489766e-01,  1.91382021e-01},
				 { 5.04698694e-01,  2.13622719e-01, -6.95112169e-01,
					 8.28229308e-01, -1.97109461e-01, -1.66934296e-01,
					-1.41812161e-01,  4.42662179e-01,  2.32226789e-01,
					-5.07530093e-01, -1.11056817e+00,  2.11733162e-01},
				 { 7.42363930e-01,  1.39164972e+00,  1.96828410e-01,
					 3.35611343e-01,  5.02780139e-01, -1.08859539e-01,
					-3.50768417e-01, -1.25483036e+00,  2.68045068e-01,
					-2.68672347e-01, -5.64632714e-01, -1.78237036e-01}},

				{{ 1.50007382e-01,  9.88753606e-03, -4.81146127e-02,
					-4.72275093e-02, -4.25470322e-01,  1.40504122e-01,
					 2.90765315e-01, -2.48512492e-01, -1.82193089e-02,
					-2.97305524e-01, -3.35639715e-01,  4.54056710e-01},
				 {-3.04801613e-01, -2.99429633e-02, -1.40179023e-01,
					 3.91502827e-01, -2.09670112e-01, -6.40454739e-02,
					-5.40546253e-02,  2.53932476e-01, -3.30323838e-02,
					 8.84706527e-03,  4.65069175e-01, -1.06532797e-02},
				 {-1.86797082e-01, -1.30909652e-01, -1.28896475e-01,
					 2.48080373e-01, -1.47777110e-01,  6.11934252e-02,
					-1.71726212e-01, -3.33528779e-02,  5.46150357e-02,
					 1.30736530e-01,  3.88110846e-01,  2.91941762e-02},
				 { 2.66415745e-01,  1.97808415e-01, -4.44971211e-02,
					-2.84127712e-01,  8.36273059e-02, -2.06558481e-01,
					 2.41896316e-01, -5.37123643e-02, -2.36249074e-01,
					-3.68530024e-03,  1.79301262e-01, -1.36939779e-01},
				 {-8.59244820e-03, -9.55575630e-02, -5.02216399e-01,
					-3.59186493e-02, -2.79081762e-01, -1.53499603e-01,
					-7.51517534e-01, -1.72358416e-02,  7.20796943e-01,
					-2.02148080e-01,  9.84661132e-02,  2.79371321e-01},
				 {-1.43521741e-01,  5.28403521e-02, -4.10466313e-01,
					 2.85239577e-01, -3.70380163e-01, -8.53470117e-02,
					 5.74819863e-01, -1.34520620e-01,  3.52956176e-01,
					-3.22480410e-01,  3.20179313e-01, -1.33184418e-01},
				 { 1.16238587e-01, -3.20282906e-01, -5.51870055e-02,
					-3.03969920e-01, -1.73577994e-01,  5.78305721e-01,
					-2.39297271e-01, -1.05613339e+00, -2.96691835e-01,
					 6.35603905e-01,  4.40049917e-01,  5.21699905e-01},
				 { 3.21581781e-01,  5.09894192e-01, -8.44862878e-01,
					-5.43055594e-01,  4.61103261e-01,  1.16114581e+00,
					 9.23702359e-01, -2.48106122e-01, -4.83252183e-02,
					 1.39954075e-01,  7.77291179e-01, -1.05057202e-01}}},


			 {{{-3.20621282e-01,  1.64667919e-01,  1.81791395e-01,
					 2.03937829e-01,  5.77788940e-03, -3.26833665e-01,
					-5.18061854e-02, -1.37897313e-01, -2.30574965e-01,
					 6.50961250e-02, -1.98845029e-01,  5.13272509e-02},
				 { 1.76582754e-01,  8.32483470e-02,  1.18965186e-01,
					 2.24187657e-01, -1.80845097e-01,  2.37653017e-01,
					 7.43543953e-02,  1.68122694e-01,  6.06337562e-03,
					 3.07249695e-01, -1.39970118e-02,  2.32548714e-01},
				 { 5.86665049e-02, -1.56928837e-01,  3.79065983e-02,
					-2.56181657e-01,  1.47268102e-01,  5.02064764e-01,
					 2.07301951e-03, -3.26490879e-01,  6.67719590e-03,
					 7.13043958e-02,  1.88057020e-01,  1.73043609e-01},
				 {-2.17822120e-01, -2.76708603e-01,  1.69242233e-01,
					 8.95425826e-02,  3.17267895e-01, -7.08937764e-01,
					-4.08022963e-02,  4.70394462e-01,  2.78936058e-01,
					-1.74597502e-01, -5.46099693e-02, -1.11558408e-01},
				 {-3.08833212e-01, -8.75569701e-01,  8.89114588e-02,
					 1.53438091e-01, -3.86105418e-01, -7.08311021e-01,
					-1.65464237e-01,  3.89871299e-01,  4.16626185e-01,
					 1.52687609e-01,  2.77573317e-01,  3.42038184e-01},
				 {-7.08884656e-01, -8.94088671e-02, -4.75552469e-01,
					-5.36144972e-01, -9.71960425e-02,  1.47958010e-01,
					 1.69764161e-02, -3.53130728e-01,  3.36548299e-01,
					 7.29073435e-02, -2.13426888e-01, -2.59836763e-01},
				 {-2.18608961e-01, -9.39668000e-01,  3.52270082e-02,
					 1.21304624e-01, -6.51957214e-01,  2.63593405e-01,
					 3.46352719e-02,  3.74875903e-01,  7.42220521e-01,
					-2.02292308e-01,  1.71525821e-01,  7.27249622e-01},
				 {-7.29904950e-01,  6.30520642e-01, -8.83700490e-01,
					-3.31669867e-01,  8.05768311e-01, -5.06799042e-01,
					-2.52019405e-01, -7.11954460e-02, -6.89883158e-02,
					-8.19406509e-02, -7.60719538e-01,  2.60042578e-01}},

				{{-2.53122479e-01,  9.10804048e-02,  4.31074977e-01,
					 1.55928478e-01, -3.77185524e-01,  7.71744102e-02,
					-1.52996495e-01, -1.93037525e-01, -1.26324996e-01,
					-1.17827520e-01, -7.86872730e-02,  4.33940530e-01},
				 {-2.40250468e-01, -8.92391652e-02, -1.86652720e-01,
					 1.64430887e-01, -2.66152054e-01, -3.95613551e-01,
					 1.03474818e-01, -1.10482469e-01,  6.04712181e-02,
					 2.42402866e-01,  4.29403596e-02,  5.05476184e-02},
				 { 3.41122657e-01, -1.25085711e-01, -3.20897818e-01,
					 3.59037757e-01, -2.24039361e-01, -3.56998861e-01,
					-1.43563882e-01, -3.98093373e-01,  1.30045563e-01,
					 1.25607699e-01,  3.32932353e-01,  8.00437108e-03},
				 {-6.36618972e-01,  1.04921721e-01,  1.01252578e-01,
					-4.16715704e-02, -5.66671342e-02,  4.34980690e-01,
					 2.03167364e-01,  2.93046236e-01,  3.50989610e-01,
					 9.90965124e-03, -2.33184285e-02, -1.92893416e-01},
				 {-1.34208596e+00, -3.83682400e-01, -1.01942348e-03,
					-2.51573294e-01,  9.76966769e-02,  1.96412817e-01,
					 1.41897157e-01,  7.62001753e-01, -8.82155895e-02,
					-7.50608444e-02,  3.64949018e-01, -5.79288322e-03},
				 {-2.53890119e-02, -1.37958020e-01,  3.68904889e-01,
					 3.58280577e-02, -1.96211353e-01, -5.52264214e-01,
					-2.97250658e-01,  5.95803797e-01,  2.25443900e-01,
					 9.54473540e-02, -3.49539191e-01,  1.98158771e-01},
				 {-5.52711427e-01, -7.11475968e-01, -4.97813672e-01,
					 2.81389207e-01, -1.05734134e+00,  2.98490405e-01,
					-8.70426059e-01, -7.58137554e-03,  9.25840363e-02,
					 1.29365057e-01,  3.63341719e-01,  8.78037393e-01},
				 {-1.60779345e+00,  7.02732205e-01, -2.16896701e+00,
					-4.61871862e-01,  1.52072951e-01,  9.25642908e-01,
					 3.06560427e-01, -5.53836763e-01,  1.01602960e+00,
					-1.03291370e-01, -5.25464043e-02,  3.41618627e-01}},

				{{-3.97511721e-01,  7.87386950e-03,  7.27513060e-02,
					-6.34687245e-02,  8.58501866e-02, -1.59227103e-01,
					 1.46493375e-01, -9.44048762e-01, -2.03270301e-01,
					-9.74453613e-03,  1.65325373e-01, -4.07328159e-02},
				 {-2.97308411e-03, -1.15950413e-01, -4.14742082e-02,
					-2.73816288e-01, -3.94527018e-01,  7.33608678e-02,
					-1.62992224e-01,  8.38414371e-01,  1.32655546e-01,
					-4.45172638e-02, -3.25844198e-01,  3.32503140e-01},
				 { 3.29432636e-01, -2.41567045e-01, -4.40980703e-01,
					-9.45998281e-02,  7.07266927e-02, -5.57787001e-01,
					 6.28299713e-02, -5.55244349e-02,  1.03889875e-01,
					 7.08117196e-03,  5.27827501e-01,  6.75218850e-02},
				 { 7.07173228e-01,  1.92588165e-01,  3.99979830e-01,
					-5.10402977e-01,  1.86112851e-01, -6.73504844e-02,
					-2.71979064e-01, -6.25972450e-01, -8.89517665e-02,
					-1.31106228e-01,  6.14695512e-02, -3.01229581e-02},
				 { 1.09040999e+00,  7.07620457e-02, -2.00102270e-01,
					 2.31079012e-01, -4.06463295e-01,  3.13888311e-01,
					 8.33349824e-02,  2.55863160e-01,  1.13251004e-02,
					-1.44392974e-03, -9.52855870e-02,  1.57881230e-01},
				 {-4.40497905e-01, -1.55918434e-01, -8.78944159e-01,
					-6.09392464e-01,  5.13709188e-01,  4.16777432e-01,
					 3.60682786e-01, -5.42139351e-01, -1.49473939e-02,
					 5.65136909e-01, -5.14286757e-01, -1.07949100e-01},
				 { 5.81824601e-01, -9.21434388e-02, -6.86341345e-01,
					 5.67607224e-01, -5.78671157e-01, -1.72352895e-01,
					-7.53044844e-01,  1.57299846e-01, -1.55236691e-01,
					 1.56490907e-01, -2.35366836e-01, -9.49650928e-02},
				 {-5.43812275e-01, -3.74825269e-01,  1.14048153e-01,
					 1.08355619e-01, -7.78387725e-01, -4.54655319e-01,
					 4.22871470e-01, -4.14504439e-01, -3.65076363e-01,
					 1.53351879e+00, -2.27804720e-01, -3.78694050e-02}}}};

const float conv2d_biases[KERN_NUM] =
	{-0.50582314, -0.15525821,  0.0937408 , -0.03968126, -0.13734879,
	 -0.02459874, -0.3019844 , -0.23460138,  0.1732959 ,  0.27621853,
	 -0.05070252,  0.15961371};

const float dense1_weights[CONV_NUM+2][DENSE1_NUM] =
			{{ 5.20365357e-01,  2.67036825e-01,  8.62667263e-01,
				-8.01012158e-01, -5.62255681e-02,  3.55006516e-01,
				-1.64424270e-01, -3.37690078e-02,  2.20626250e-01},
			 {-3.20976414e-02,  1.73315942e-01, -4.74967808e-01,
				 6.37338400e-01,  4.11289304e-01, -3.00935507e-01,
				-4.01919007e-01, -2.34734058e+00, -3.62349711e-02},
			 { 2.38940313e-01,  1.19680442e-01,  9.57708061e-02,
				 3.68705601e-01,  2.16242850e-01,  5.07338680e-02,
				 2.52478719e-01,  4.45370972e-01, -4.50314403e-01},
			 { 8.80156383e-02, -4.95193779e-01, -7.49421716e-01,
				 4.70114559e-01,  1.65679172e-01, -2.11382747e-01,
				 2.53362954e-01,  3.50114673e-01,  3.44294578e-01},
			 { 3.93504024e-01, -5.00152893e-02,  5.52745700e-01,
				-9.11833867e-02, -5.71952052e-02,  8.89931023e-02,
				 3.75504434e-01,  1.89111859e-01,  8.01168308e-02},
			 { 1.09015241e-01, -2.00682506e-01,  3.89305153e-03,
				 2.40203962e-01, -5.06035425e-03, -9.12028998e-02,
				-2.33393386e-02,  5.54777622e-01,  3.77401263e-01},
			 { 4.56697136e-01,  3.29195678e-01, -2.28467479e-01,
				-1.15299940e+00, -6.59075752e-02, -3.01349580e-01,
				-2.16863737e-01, -3.03600520e-01, -7.46684551e-01},
			 {-5.23586385e-02, -1.55518189e-01, -8.77263993e-02,
				 2.95609534e-01, -1.83331162e-01, -4.16167229e-01,
				 4.61864576e-04, -3.66415828e-01, -8.36871285e-03},
			 { 4.89014030e-01, -1.99271590e-01,  4.59110349e-01,
				 9.84975472e-02, -3.38084936e-01,  6.41228855e-02,
				-2.10301578e-01,  2.60511249e-01,  3.05164814e-01},
			 { 1.30015984e-01,  1.60117462e-01,  3.69346797e-01,
				-6.24918006e-02, -2.48857528e-01,  2.77208269e-01,
				 1.28859654e-01,  1.03206217e+00, -4.05737191e-01},
			 { 6.07349165e-02, -2.10251436e-01, -3.62392478e-02,
				 3.77864242e-01,  2.31077094e-02,  1.36317402e-01,
				-6.53880179e-01,  3.00495058e-01, -6.95155442e-01},
			 {-1.88866496e-01,  1.84832111e-01, -1.33059829e-01,
				-5.57637990e-01,  2.72664905e-01, -4.24268246e-01,
				-2.86635775e-02,  3.79080802e-01,  1.05716281e-01},
			 {-1.73378840e-01, -1.37337968e-01,  2.76079234e-02,
				-1.82590976e-01,  7.39220753e-02, -1.27823781e-02,
				 6.29893720e-01, -5.25784167e-03,  2.49765366e-01},
			 {-4.04023647e-01, -1.76825508e-01,  4.32559222e-01,
				 9.43508625e-01,  3.13296795e-01,  1.51266724e-01,
				 1.31022006e-01, -1.28474462e+00,  1.09592572e-01},
			 { 1.15125969e-01, -2.38704637e-01,  4.27061856e-01,
				-9.80967134e-02, -4.14862543e-01, -3.62555534e-01,
				-2.43889660e-01,  6.90107867e-02, -1.31983030e+00},
			 {-9.43813547e-02,  2.16144845e-02, -3.23398650e-01,
				-3.27076435e-01,  7.32412338e-02,  7.04773813e-02,
				-1.04577214e-01,  3.44722457e-02, -9.28458750e-01},
			 {-8.87508765e-02, -3.85157168e-01,  3.25263321e-01,
				-2.48622358e-01,  4.38320227e-02,  1.32690743e-01,
				 1.00045726e-01,  2.69518644e-01, -7.45460466e-02},
			 { 4.42616135e-01, -1.89856403e-02,  3.18905085e-01,
				-4.97087389e-01,  2.33395547e-01, -3.93612981e-02,
				-2.06765443e-01, -4.62062895e-01, -3.80534887e-01},
			 {-8.77905190e-02,  3.01677227e-01,  3.22045982e-02,
				 4.68370259e-01,  3.28393072e-01,  2.06847310e-01,
				-3.35303545e-01, -6.53518617e-01,  6.30351484e-01},
			 {-6.66759312e-02,  4.95591108e-03, -8.03819597e-02,
				-1.68458953e-01, -1.15239032e-01,  5.30615710e-02,
				 1.54220894e-01,  5.09904400e-02, -1.55578712e-02},
			 { 2.21744984e-01, -2.53749430e-01, -6.58039600e-02,
				 7.57964551e-02,  1.96426600e-01,  2.93583244e-01,
				 1.70011163e-01, -6.31138861e-01, -1.57757923e-01},
			 { 2.08598807e-01,  1.91986226e-02, -1.28829610e-02,
				 1.47030326e-02,  1.71952724e-01,  5.51540494e-01,
				 2.34726742e-01, -1.68631271e-01,  2.27002367e-01},
			 { 2.83379674e-01,  3.88685048e-01,  3.47124547e-01,
				 1.74664766e-01, -1.58639818e-01,  1.73848495e-01,
				-2.26383433e-01,  1.64550394e-01,  1.48353696e-01},
			 {-3.56125742e-01, -2.44194478e-01, -3.26962620e-01,
				 2.23630592e-01,  4.21533197e-01, -6.24508504e-03,
				 1.68060556e-01,  1.13140628e-01, -4.72423732e-01},
			 {-8.76833722e-02, -1.21912397e-01, -7.58987844e-01,
				-5.90288103e-01, -2.34685853e-01,  1.73539087e-01,
				 1.44752890e-01,  3.90227675e-01, -2.88754981e-02},
			 {-4.92896408e-01,  6.28241003e-02,  2.95018911e-01,
				 6.17515519e-02, -8.50111470e-02,  3.62739600e-02,
				 3.89824957e-01, -3.66259180e-02, -4.47826087e-01},
			 { 2.06254914e-01,  1.63933858e-01, -3.06753248e-01,
				 1.64834812e-01,  1.48237282e-02,  4.56595033e-01,
				-1.02455810e-01, -6.85565412e-01, -3.64740163e-01},
			 { 2.54897535e-01, -6.36682734e-02, -1.52546734e-01,
				 5.18710732e-01,  7.62630850e-02,  2.10710108e-01,
				-9.73656029e-02,  2.03102142e-01, -3.52863640e-01},
			 { 2.27836758e-01, -2.79923491e-02,  2.24231079e-01,
				 2.34357774e-01, -1.20351292e-01, -3.09137404e-01,
				 1.82274044e-01,  4.65571731e-02, -2.37010848e-02},
			 { 6.42556623e-02,  1.50329061e-02,  8.42898432e-03,
				 7.31379032e-01, -1.16561435e-01, -2.75750130e-01,
				-1.60046905e-01,  3.54181349e-01, -9.45040062e-02},
			 {-7.22073317e-02,  3.89727294e-01, -4.73219663e-01,
				 7.09266961e-01,  3.37156981e-01, -4.17882890e-01,
				-3.84191334e-01,  7.40251482e-01, -4.28816915e-01},
			 { 4.46183383e-01,  8.74729007e-02, -3.99450250e-02,
				-2.96927094e-01,  2.36514762e-01,  3.92161399e-01,
				-7.10298941e-02, -8.34203780e-01, -9.91344750e-01},
			 {-9.15601850e-02,  2.32772436e-02,  4.53691959e-01,
				-7.32673034e-02, -1.29909888e-01,  1.66824281e-01,
				 1.43999532e-01, -2.11547911e-02,  3.16345811e-01},
			 { 6.29108012e-01, -1.06082847e-02,  3.86569530e-01,
				-6.57522321e-01, -1.31236702e-01,  6.30103528e-01,
				-1.98857814e-01, -3.69297445e-01,  1.00227349e-01},
			 { 2.78403163e-01, -1.45616055e-01, -1.27781210e-02,
				-4.52052709e-03, -3.18631530e-02,  3.84424254e-02,
				 5.80449849e-02, -6.08923137e-01, -1.28857136e-01},
			 {-3.49824905e-01,  1.82143033e-01, -4.40112680e-01,
				-4.25096631e-01,  2.48442337e-01, -1.70006692e-01,
				-1.38579160e-01, -1.51360109e-01,  3.38080190e-02},
			 { 3.39815825e-01,  2.34008580e-02,  1.27229556e-01,
				 2.64536679e-01, -2.75400966e-01,  7.11119249e-02,
				 5.78213017e-03, -4.05856632e-02, -3.55877668e-01},
			 {-1.04772165e-01, -1.13926744e-02, -4.52669770e-01,
				 5.18807054e-01,  5.06500781e-01, -8.27034488e-02,
				-1.48424163e-01,  4.19646889e-01, -1.17617452e+00},
			 {-3.10544670e-01, -1.15964666e-01, -2.05748543e-01,
				 4.90682572e-01,  2.96750337e-01,  8.85647833e-02,
				 3.25647965e-02, -9.49119702e-02,  2.89876580e-01},
			 {-5.71977422e-02,  1.99770167e-01, -3.48299384e-01,
				-3.07899922e-01,  3.16252470e-01,  1.08715631e-01,
				 2.67641604e-01, -9.17425305e-02, -9.22367573e-02},
			 { 8.92782286e-02,  2.36649349e-01, -1.29275680e-01,
				 1.98424622e-01,  1.02785207e-01,  4.34195101e-02,
				 4.82708514e-01, -8.44382122e-02, -1.42766610e-01},
			 { 2.32119113e-01,  7.54624009e-02,  2.47529775e-01,
				 2.08809465e-01, -2.28980258e-01, -3.62709910e-01,
				 2.34360144e-01, -5.39934397e-01, -1.51306355e+00},
			 {-4.45259571e-01,  1.56581834e-01,  4.39378500e-01,
				-4.88224417e-01, -4.09646183e-02,  2.61773080e-01,
				 1.06917150e-01, -6.69699967e-01, -6.13316715e-01},
			 { 3.14878151e-02, -1.93600595e-01,  6.39250204e-02,
				-1.35152504e-01,  5.83995879e-02,  2.75308311e-01,
				-1.18696734e-01, -5.95717914e-02,  1.38369232e-01},
			 { 2.88242161e-01, -1.77467182e-01, -8.38139057e-01,
				 2.69457042e-01, -1.88882276e-01,  3.65129799e-01,
				-6.01105317e-02, -2.55823165e-01, -3.68736029e-01},
			 { 1.90774456e-01,  3.37121010e-01, -2.21511692e-01,
				-4.80402410e-01,  2.20350161e-01,  3.19534123e-01,
				 9.83228907e-02,  6.59708798e-01, -2.44981255e-02},
			 { 1.29115105e-01, -3.37750874e-02,  6.00449257e-02,
				-9.23546031e-02,  1.01711333e-01,  3.04357260e-01,
				-3.40147465e-02, -2.94849306e-01,  3.73780787e-01},
			 { 3.95375997e-01, -5.87834138e-03, -9.22912955e-02,
				 1.14963382e-01, -1.27017265e-02, -7.74945468e-02,
				-3.61975789e-01,  1.82964250e-01,  5.74072838e-01},
			 { 4.47279364e-01,  2.35828638e-01,  1.04954951e-01,
				-2.56818682e-01,  1.47959394e-02,  2.68251598e-01,
				 1.59622788e-01,  1.38466191e-02,  1.82562396e-02},
			 {-1.44805044e-01, -1.79396406e-01,  1.89334616e-01,
				-1.21175282e-01,  2.16509923e-01, -4.62895066e-01,
				 2.60051101e-01, -3.42255384e-01, -1.04841284e-01},
			 {-3.91470343e-01, -5.78178689e-02,  1.77685090e-03,
				 1.74934924e-01, -2.06728473e-01,  5.46238162e-02,
				 1.24351010e-01,  3.41734409e-01,  3.12781245e-01},
			 {-7.36642256e-02,  4.74024862e-02, -1.76254541e-01,
				-1.08159304e-01,  2.40964934e-01,  1.29042119e-01,
				 2.66190261e-01,  1.99496001e-02, -3.96312326e-02},
			 { 6.73424229e-02,  2.68810391e-01, -3.11152428e-01,
				 2.25328356e-02,  9.26664546e-02, -4.37319577e-01,
				-1.95658371e-01,  3.72818351e-01,  7.34095648e-02},
			 { 1.24284320e-01, -2.08963100e-02,  2.93873817e-01,
				 3.93925488e-01,  2.98458189e-01, -5.40206619e-02,
				 6.51299804e-02, -1.89499352e-02, -1.74234211e-02},
			 {-3.72406751e-01, -3.00065935e-01,  2.72945672e-01,
				-2.56178111e-01,  1.90329760e-01, -2.15790840e-03,
				 2.04500809e-01,  3.33028823e-01,  2.61211768e-02},
			 {-3.66824895e-01, -7.09661961e-01,  2.37200230e-01,
				-3.18618953e-01, -1.37146994e-01, -2.81187445e-01,
				 2.02441633e-01,  4.20169204e-01,  2.53293873e-03},
			 { 9.77746323e-02, -4.53759730e-02,  1.03109688e-01,
				 4.02013808e-01, -6.52036816e-03,  2.75388896e-01,
				 4.57569724e-03, -3.84352684e-01,  4.80003446e-01},
			 { 3.38302553e-01, -1.47270247e-01, -1.03805453e-01,
				-6.59075022e-01, -1.19924597e-01, -1.52962923e-01,
				 9.17055383e-02,  2.07310304e-01,  4.93027061e-01},
			 { 3.12479168e-01, -4.45763320e-02,  9.07223374e-02,
				-3.27426523e-01, -6.28064573e-02,  2.56404191e-01,
				 2.09402349e-02,  9.94764045e-02, -1.97675243e-01},
			 { 1.40701562e-01, -1.90860659e-01,  2.72095114e-01,
				-5.05917855e-02,  2.95733660e-01,  2.99807101e-01,
				-3.60057456e-04, -7.61540458e-02,  5.30228317e-01},
			 { 1.83914959e-01, -3.80164444e-01,  2.55899817e-01,
				-9.79989767e-01, -5.88855259e-02,  3.26165169e-01,
				-4.58869040e-02,  1.91851825e-01,  5.31686068e-01},
			 { 3.14017199e-02, -1.06478408e-01,  5.03059566e-01,
				 2.84127384e-01,  1.57308668e-01,  9.35146809e-02,
				-8.11032951e-02,  4.23716903e-01, -2.13296097e-02},
			 {-3.20372105e-01,  3.90262723e-01,  3.48023504e-01,
				-1.41910136e-01,  1.90512642e-01, -8.28668177e-02,
				 3.74634147e-01, -5.97442091e-01,  9.23731178e-02},
			 { 4.08399731e-01,  1.77162215e-01, -3.10536355e-01,
				-2.49323055e-01,  1.08527429e-01,  4.91385847e-01,
				 2.18052357e-01,  1.03610389e-01,  4.74729650e-02},
			 { 4.56120074e-02, -3.56300354e-01, -1.23813175e-01,
				 5.43736100e-01, -1.09640323e-01, -3.11791539e-01,
				-2.90389508e-01, -5.39120845e-02, -7.80032575e-01},
			 { 6.90717716e-03,  2.34693348e-01,  1.61744744e-01,
				-4.56038743e-01,  1.12377651e-01, -1.12118811e-04,
				-1.54462442e-01, -8.70335400e-02,  7.41065264e-01},
			 {-7.37173334e-02,  2.18026340e-01,  4.06085044e-01,
				 6.14916623e-01,  5.15355289e-01, -2.51995832e-01,
				-2.44810820e-01, -3.65591437e-01, -2.84269303e-01},
			 { 6.89226151e-01,  2.46565565e-01, -4.87345994e-01,
				-5.56775033e-01, -2.89455783e-02, -2.51275539e-01,
				 3.80881950e-02,  6.11789942e-01, -5.71883380e-01},
			 { 2.88258463e-01,  1.99822336e-01, -2.23929107e-01,
				 2.89243847e-01,  1.75736725e-01, -7.12539721e-03,
				 6.95113167e-02, -7.55383372e-01,  4.41047728e-01},
			 {-5.32903001e-02,  3.76432785e-03, -1.67035237e-01,
				-5.61747968e-01, -5.81132360e-02,  3.84685576e-01,
				 2.56420761e-01, -1.87474161e-01,  4.75669593e-01},
			 { 1.43814251e-01,  5.59240818e-01, -1.23444781e-01,
				-6.29278719e-01,  1.05193630e-02, -1.05026932e-02,
				 1.94454193e-01, -5.75249791e-01, -6.80901289e-01},
			 {-4.29649204e-02,  7.58018345e-02,  3.34357291e-01,
				-8.15346930e-03,  2.14863583e-01, -4.75016795e-02,
				-3.00820023e-01,  1.89484134e-01,  3.02402467e-01},
			 {-5.65690808e-02, -1.62820473e-01,  7.04636037e-01,
				-2.69304067e-01, -4.99885112e-01, -5.22235557e-02,
				 1.79527532e-02,  1.22891463e-01, -1.86221099e+00},
			 { 2.51392663e-01,  1.63013205e-01,  2.32890040e-01,
				-3.79619151e-01,  1.58784732e-01, -7.72120059e-02,
				-2.14758456e-01,  5.62392414e-01, -9.25744832e-01},
			 {-3.68350536e-01,  3.35248768e-01, -3.12338263e-01,
				 2.16399640e-01,  3.08710158e-01, -2.93771625e-02,
				-3.49074215e-01, -2.22405419e-01, -1.50392756e-01},
			 {-2.65450478e-01,  2.20399648e-01, -4.18037742e-01,
				-1.04343757e-01,  9.99428034e-02, -2.86762893e-01,
				-2.18701288e-01, -1.39460170e+00, -1.84233803e-02},
			 { 3.16966444e-01, -9.56642330e-02, -1.50917638e-02,
				-1.11291873e+00, -2.77770370e-01, -5.13010859e-01,
				 3.35708231e-01,  1.63144633e-01, -2.56705374e-01},
			 {-6.44954592e-02, -8.18067789e-02, -3.27414244e-01,
				 4.16553527e-01, -1.51590377e-01, -1.38012335e-01,
				 7.69485950e-01, -8.10781956e-01, -1.34538209e+00},
			 { 1.63818613e-01,  1.26917779e-01,  1.86418369e-01,
				 4.56362605e-01,  9.85018909e-02,  1.12639189e-01,
				-2.58248627e-01,  5.49259901e-01,  3.04298729e-01},
			 { 4.02803838e-01,  3.20964724e-01,  5.70965409e-01,
				-2.75918901e-01,  7.96031356e-02,  1.02707855e-01,
				 1.75855070e-01,  4.01160479e-01, -4.09673631e-01},
			 {-5.55324042e-03, -1.91442147e-01,  3.43125612e-01,
				 3.01660836e-01, -1.67308301e-01,  3.21995735e-01,
				 1.27009585e-01, -1.92643493e-01,  1.27159551e-01},
			 {-5.18567637e-02,  3.72615792e-02,  1.39038906e-01,
				 2.57276118e-01, -5.88834435e-02,  6.48251995e-02,
				-1.37870386e-01,  3.50086987e-01, -6.66871488e-01},
			 { 3.78720611e-01,  7.86661804e-02, -1.85466826e-01,
				 4.70410794e-01, -2.91286334e-02, -4.96379063e-02,
				 3.47079813e-01, -5.29502891e-02, -4.65799600e-01},
			 {-3.86181384e-01,  3.42381150e-01,  3.88701595e-02,
				 5.25177062e-01,  2.98870355e-01, -1.88992962e-01,
				-1.10377178e-01,  1.65274560e-01,  6.58466965e-02},
			 {-2.27205321e-01,  1.65890511e-02, -8.19056094e-01,
				-3.07036698e-01, -1.24995792e-02,  7.35691011e-01,
				 3.92339259e-01,  1.04015715e-01,  7.07290173e-01},
			 {-4.58274148e-02, -4.01773788e-02, -3.54636699e-01,
				-4.42152828e-01,  2.03399450e-01,  1.73906639e-01,
				 1.64666712e-01, -9.67762545e-02, -9.08142626e-02},
			 { 8.60381797e-02,  1.61246195e-01, -2.43126318e-01,
				-1.24653734e-01,  3.55467677e-01, -4.88721669e-01,
				-1.84358373e-01, -1.92940876e-01, -3.77486289e-01},
			 {-1.53214619e-01, -9.05015171e-02, -5.37251413e-01,
				-8.33939075e-01,  1.48675680e-01,  4.55437928e-01,
				-2.13283554e-01, -3.97284180e-02,  2.67166287e-01},
			 { 1.00485951e-01, -3.41468632e-01, -5.49097359e-01,
				-8.40830028e-01,  2.00135633e-01,  6.41800687e-02,
				-5.06431647e-02,  1.11733019e-01,  5.31757414e-01},
			 {-1.53401718e-01,  1.85743108e-01, -2.76827842e-01,
				 3.44686449e-01, -2.48533815e-01, -4.61145602e-02,
				 4.03787851e-01, -5.12677789e-01, -2.13835299e-01},
			 {-1.07171498e-01,  1.97845563e-01, -4.14673090e-01,
				 1.52817532e-01,  2.53381699e-01,  1.47084936e-01,
				 3.00640643e-01,  1.51416823e-01,  1.34567961e-01},
			 { 6.77554965e-01,  2.53076464e-01, -3.80636275e-01,
				 1.25611231e-01,  1.34928107e-01, -1.59578711e-01,
				-3.95457029e-01,  2.34642059e-01, -2.79866457e-01},
			 { 1.83228999e-01,  2.66587526e-01,  1.97180092e-01,
				 3.10978025e-01, -8.40307679e-03,  4.97100025e-01,
				-2.74940491e-01,  3.15407932e-01,  4.40992087e-01},
			 { 1.45733252e-01, -1.78069547e-01, -5.72171509e-02,
				-1.08311288e-01,  3.66506912e-02,  7.58164898e-02,
				 1.73283547e-01,  1.58833005e-02,  2.58592427e-01},
			 {-6.48332462e-02, -2.08469048e-01, -1.93653792e-01,
				-8.78848061e-02, -1.02923386e-01, -5.60842305e-02,
				 7.87734389e-02, -7.22653687e-01,  4.44512069e-03},
			 {-1.84073627e-01,  2.01684937e-01, -5.27555346e-02,
				 3.49038720e-01,  1.84398800e-01,  2.71714497e-02,
				-1.05141826e-01, -4.99811351e-01, -3.17314155e-02},
			 { 1.89444259e-01, -5.12597263e-01,  1.00867939e+00,
				-6.24394752e-02, -2.63740599e-01,  3.52429330e-01,
				 1.17375374e-01, -9.73625898e-01,  2.81982068e-02},
			 {-2.76787281e-01, -7.40799904e-02,  3.89515132e-01,
				-6.44383371e-01,  1.14130884e-01,  9.30463597e-02,
				-5.94623350e-02, -1.23379022e-01,  1.62462458e-01},
			 {-1.36184260e-01,  2.83795089e-01, -1.01524524e-01,
				 1.64970476e-03,  2.58080870e-01, -1.90085471e-02,
				-1.94060966e-01,  3.41793239e-01,  2.34921426e-01},
			 { 2.45781586e-01,  3.43621433e-01, -8.22937042e-02,
				 2.20040604e-01, -8.78500268e-02, -3.35342973e-01,
				 4.09249246e-01,  8.25929642e-02,  1.06100574e-01},
			 { 2.13896841e-01,  5.06344177e-02,  7.53350377e-01,
				-6.72554135e-01, -1.97996870e-01,  1.05498016e-01,
				 1.36608422e-01, -2.33995438e-01, -1.04750121e+00},
			 { 5.35587445e-02,  2.28788659e-01, -4.10330981e-01,
				 2.99086601e-01,  2.29404241e-01, -3.10413510e-01,
				 3.72333586e-01, -2.40012437e-01, -3.76001328e-01},
			 { 1.94292784e-01,  3.21002245e-01,  3.94462228e-01,
				 3.75159919e-01,  4.53037947e-01, -3.33846718e-01,
				 1.01650618e-01,  5.69569528e-01, -1.13408297e-01},
			 {-1.11003108e-02, -2.39230156e-01,  3.61039937e-01,
				 5.73206782e-01, -3.03605139e-01,  1.95180282e-01,
				 9.65730727e-01, -6.27246872e-02,  5.83911121e-01},
			 { 2.60331988e-01, -3.94705623e-01,  8.42839718e-01,
				 2.11903587e-01,  6.39226660e-02, -1.40606150e-01,
				 1.42916352e-01, -3.25561762e-01,  4.14942652e-02},
			 { 2.94532090e-01, -4.35806587e-02,  1.90212056e-01,
				 7.34699145e-02,  5.07718287e-02,  2.00441465e-01,
				 3.08042347e-01, -4.50803965e-01, -5.48107982e-01},
			 { 2.30216905e-01, -1.26153693e-01,  2.32551485e-01,
				 1.65955365e-01, -2.33608112e-01,  6.77250102e-02,
				 8.34632590e-02, -2.29046419e-01, -3.62604707e-01},
			 {-3.26398879e-01,  1.65084854e-01, -5.60568213e-01,
				 2.45142743e-01,  2.77332157e-01, -3.83673787e-01,
				-3.73386919e-01,  3.77528578e-01, -1.77783873e-02},
			 {-1.59187472e+00,  2.12910891e+00, -7.44757414e-01,
				-1.49688292e+00,  1.80871642e+00, -1.79384756e+00,
				-1.69458473e+00,  7.15802670e-01,  1.51803449e-01},
			 { 1.64586818e+00, -1.42934048e+00,  1.82159615e+00,
				-5.19323885e-01, -1.84979129e+00,  1.61859345e+00,
				 1.87775397e+00, -7.55037487e-01, -1.33021569e+00}};

const float dense1_biases[DENSE1_NUM] =
	{ 0.08323663,  0.06709348,  0.08471993,  0.29292974,  0.08572711,
		0.1444555 ,  0.11218692, -0.08387941,  0.16479559};

const float dense2_weights[DENSE1_NUM][DENSE2_NUM] =
	{{-0.355027  , -0.03038524, -0.9623985 ,  0.44522065, -0.328203  , 0.09186581,  0.4277215 ,  0.40182036},
	 {-0.59044325, -0.04097023,  0.3064686 , -0.04390931, -0.6194402 , 0.7946514 , -0.32374156, -0.48573917},
	 {-0.3127039 , -0.02573497,  0.51843095,  0.31725854,  0.34176385, 0.38730493,  1.0971122 , -1.0043958 },
	 {-0.09376942,  0.05173856, -0.37805918,  0.10716944, -0.16785148, -0.6186499 ,  0.94506395, -0.79232514},
	 { 0.05518914, -0.04873696,  0.44968304, -0.13863392, -0.4847229 , 0.94378626, -0.4600172 ,  0.0524866 },
	 { 0.01710335, -0.01360651, -0.9012569 ,  0.71135896, -0.5623713 , -0.17142558, -0.21226907,  0.2793243 },
	 {-0.5672554 ,  0.04492819,  0.71869844,  0.61543185, -0.5980374 , -0.5959678 , -0.63906205, -0.33205396},
	 { 0.04449992,  0.01005313,  0.03499761, -0.5123107 , -0.22831082, 0.726815  , -0.5536366 , -0.415349  },
	 { 0.00354342, -0.07097852,  0.5969949 , -0.51290333, -0.2601601 , 0.5347398 , -0.4713355 ,  0.5292223 }};

const float dense2_biases[DENSE2_NUM] =
	{-0.2302535 ,  0.01565712, -0.19636394,  0.2920104 , -0.12861954,
	 0.24527866,  0.20829447,  0.14413184};

const float output_weights[DENSE2_NUM][OUTPUT_NUM] =
	{{ 0.11664173, -0.46251142},
	 {-0.23456739, -0.21527362},
	 {-0.7781244 ,  0.7823311 },
	 { 0.8555713 , -0.8524619 },
	 {-0.5087054 , -0.13419573},
	 {-0.7862614 ,  0.7739757 },
	 { 0.5553004 , -0.5589422 },
	 {-0.41366068,  0.40288085}};

const float output_biases[2] = {-0.15190634,  0.17115395};