diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-10 21:01:47 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-10 21:01:47 +0100 |
| commit | 2fbfc406abe5a42f45face9b07a91ec64c0d4f78 (patch) | |
| tree | 2a65ffc385ad6edbdb24cf3c945bb701f601e1f3 /workspaces | |
| parent | bbef66d114ddd8091f79c8b27e6877c80236031b (diff) | |
update train_cnn.py and shader
Diffstat (limited to 'workspaces')
| -rw-r--r-- | workspaces/main/shaders/cnn/cnn_conv5x5.wgsl | 43 | ||||
| -rw-r--r-- | workspaces/main/shaders/cnn/cnn_layer.wgsl | 27 | ||||
| -rw-r--r-- | workspaces/main/shaders/cnn/cnn_weights_generated.wgsl | 290 |
3 files changed, 201 insertions, 159 deletions
diff --git a/workspaces/main/shaders/cnn/cnn_conv5x5.wgsl b/workspaces/main/shaders/cnn/cnn_conv5x5.wgsl index 5136740..0f261dd 100644 --- a/workspaces/main/shaders/cnn/cnn_conv5x5.wgsl +++ b/workspaces/main/shaders/cnn/cnn_conv5x5.wgsl @@ -83,3 +83,46 @@ fn cnn_conv5x5_7to1( return sum; // Output in [-1,1] } + +// Source layer: 7→4 channels (RGBD output) +// Normalizes [0,1] input to [-1,1] internally +fn cnn_conv5x5_7to4_src( + tex: texture_2d<f32>, + samp: sampler, + uv: vec2<f32>, + resolution: vec2<f32>, + weights: array<array<f32, 8>, 100> +) -> vec4<f32> { + let step = 1.0 / resolution; + + let original = (textureSample(tex, samp, uv) - 0.5) * 2.0; + let gray = 0.2126*original.r + 0.7152*original.g + 0.0722*original.b; + let uv_norm = (uv - 0.5) * 2.0; + + var sum = vec4<f32>(0.0); + var pos = 0; + + for (var dy = -2; dy <= 2; dy++) { + for (var dx = -2; dx <= 2; dx++) { + let offset = vec2<f32>(f32(dx), f32(dy)) * step; + let rgbd = (textureSample(tex, samp, uv + offset) - 0.5) * 2.0; + + let inputs = array<f32, 7>( + rgbd.r, rgbd.g, rgbd.b, rgbd.a, + uv_norm.x, uv_norm.y, gray + ); + + for (var out_c = 0; out_c < 4; out_c++) { + let idx = pos * 4 + out_c; + var channel_sum = weights[idx][7]; + for (var in_c = 0; in_c < 7; in_c++) { + channel_sum += weights[idx][in_c] * inputs[in_c]; + } + sum[out_c] += channel_sum; + } + pos++; + } + } + + return sum; +} diff --git a/workspaces/main/shaders/cnn/cnn_layer.wgsl b/workspaces/main/shaders/cnn/cnn_layer.wgsl index 1b1b539..3f970df 100644 --- a/workspaces/main/shaders/cnn/cnn_layer.wgsl +++ b/workspaces/main/shaders/cnn/cnn_layer.wgsl @@ -30,28 +30,27 @@ struct CNNLayerParams { @fragment fn fs_main(@builtin(position) p: vec4<f32>) -> @location(0) vec4<f32> { let uv = p.xy / uniforms.resolution; - let original = (textureSample(original_input, smplr, uv) - 0.5) * 2.0; // Normalize to [-1,1] + let original_raw = textureSample(original_input, smplr, uv); + let original = (original_raw - 0.5) * 2.0; // Normalize to [-1,1] var result = vec4<f32>(0.0); - // Layer 0: 7→4 (RGBD output) + // Layer 0: 7→4 (RGBD output, normalizes [0,1] input) if (params.layer_index == 0) { - result = cnn_conv3x3_7to4_src(txt, smplr, uv, uniforms.resolution, weights_layer0); - result = cnn_tanh(result); // Keep in [-1,1] + result = cnn_conv3x3_7to4_src(txt, smplr, uv, uniforms.resolution, + weights_layer0); + result = cnn_tanh(result); } else if (params.layer_index == 1) { result = cnn_conv5x5_7to4(txt, smplr, uv, uniforms.resolution, original, weights_layer1); - result = cnn_tanh(result); // Keep in [-1,1] + result = cnn_tanh(result); // Keep in [-1,1] } - else if (params.layer_index == 2) { // last layer + else if (params.layer_index == 2) { let gray_out = cnn_conv3x3_7to1(txt, smplr, uv, uniforms.resolution, - original, weights_layer2); - - // At this point here, 'gray_out' is what the training script should have learned. - // Below is some extra code for visual output, excluded from training: - result = vec4<f32>(gray_out, gray_out, gray_out, 1.0); // Keep in [-1,1] - let blended = mix(original, result, params.blend_amount); - return (blended + 1.0) * 0.5; // Denormalize to [0,1] for display + original, weights_layer2); + // gray_out already in [0,1] from clipped training + result = vec4<f32>(gray_out, gray_out, gray_out, 1.0); + return mix(original_raw, result, params.blend_amount); // [0,1] } - return result; + return result; // [-1,1] } diff --git a/workspaces/main/shaders/cnn/cnn_weights_generated.wgsl b/workspaces/main/shaders/cnn/cnn_weights_generated.wgsl index e38669f..9e7d92d 100644 --- a/workspaces/main/shaders/cnn/cnn_weights_generated.wgsl +++ b/workspaces/main/shaders/cnn/cnn_weights_generated.wgsl @@ -2,156 +2,156 @@ // DO NOT EDIT - Generated by train_cnn.py const weights_layer0: array<array<f32, 8>, 36> = array( - array<f32, 8>(0.074911, 0.143202, 0.086903, 0.070680, -0.031904, 0.122884, 0.191824, 0.071112), - array<f32, 8>(0.081964, 0.033505, 0.058371, -0.015971, -0.069732, -0.014956, 0.142861, 0.119666), - array<f32, 8>(0.231883, -0.160763, -0.147218, 0.161321, -0.031718, -0.065766, 0.093359, 0.171734), - array<f32, 8>(0.082047, 0.288492, 0.121087, 0.001740, -0.104745, -0.071150, 0.031105, 0.037989), - array<f32, 8>(0.139236, 0.160690, 0.022091, 0.070994, 0.008793, 0.059247, 0.215077, 0.071112), - array<f32, 8>(0.128842, 0.268017, -0.031546, 0.068152, -0.073793, 0.124100, 0.252295, 0.119666), - array<f32, 8>(0.077193, -0.080009, -0.160674, 0.101131, -0.152167, -0.035271, 0.067397, 0.171734), - array<f32, 8>(-0.073119, 0.204309, 0.005654, 0.101254, -0.063530, -0.040801, 0.213393, 0.037989), - array<f32, 8>(-0.024175, 0.018739, 0.095518, 0.096945, 0.088315, 0.079085, -0.069127, 0.071112), - array<f32, 8>(0.219014, 0.218505, 0.014228, 0.014379, 0.075954, -0.001065, 0.201142, 0.119666), - array<f32, 8>(0.182743, -0.041270, -0.085458, 0.092904, 0.020316, 0.036077, 0.020220, 0.171734), - array<f32, 8>(-0.210247, -0.072180, 0.017628, 0.084834, 0.050409, -0.067274, -0.130565, 0.037989), - array<f32, 8>(0.071649, -0.072076, -0.109385, -0.012436, 0.041505, -0.013451, -0.068780, 0.071112), - array<f32, 8>(0.083389, 0.133852, -0.018137, 0.086250, -0.006205, 0.052853, 0.137369, 0.119666), - array<f32, 8>(0.023275, 0.036871, -0.092898, -0.059569, -0.029758, -0.089218, -0.031705, 0.171734), - array<f32, 8>(0.054874, 0.290596, 0.157026, -0.127200, 0.054010, -0.163627, 0.185273, 0.037989), - array<f32, 8>(0.069455, -0.122527, 0.010922, -0.051404, -0.067941, 0.122001, 0.034784, 0.071112), - array<f32, 8>(0.263187, 0.346644, 0.094376, 0.080049, -0.013980, -0.020629, 0.287019, 0.119666), - array<f32, 8>(0.078601, -0.045813, 0.048391, 0.107248, -0.001537, 0.003619, 0.040853, 0.171734), - array<f32, 8>(-0.052910, 0.333324, -0.028273, 0.111413, 0.059925, 0.054957, 0.257592, 0.037989), - array<f32, 8>(0.037894, 0.001266, 0.039858, 0.027731, 0.156182, 0.094188, 0.021791, 0.071112), - array<f32, 8>(0.220401, 0.241493, 0.138405, 0.082160, 0.144517, -0.050410, 0.257101, 0.119666), - array<f32, 8>(0.055409, -0.103410, 0.049778, -0.023193, -0.116368, -0.085046, 0.047003, 0.171734), - array<f32, 8>(0.019721, 0.099621, 0.005697, -0.069641, -0.100712, 0.044279, -0.104894, 0.037989), - array<f32, 8>(0.132833, 0.144224, 0.075612, -0.052095, -0.027924, 0.029124, -0.012077, 0.071112), - array<f32, 8>(0.146387, 0.098381, 0.131536, 0.034274, -0.073611, 0.080596, 0.124333, 0.119666), - array<f32, 8>(0.118243, -0.165692, -0.091107, 0.001822, 0.003771, -0.053877, -0.045592, 0.171734), - array<f32, 8>(-0.146034, 0.167379, 0.036433, -0.074485, 0.047772, 0.007719, -0.057026, 0.037989), - array<f32, 8>(-0.105517, -0.143677, 0.006013, 0.038752, 0.082525, -0.070290, -0.082964, 0.071112), - array<f32, 8>(0.084325, 0.192342, 0.005734, 0.083787, 0.010618, 0.076732, 0.206159, 0.119666), - array<f32, 8>(0.025873, -0.002030, -0.008453, 0.189578, 0.077363, 0.014099, 0.086760, 0.171734), - array<f32, 8>(-0.040145, 0.209639, 0.131112, 0.021154, -0.046391, -0.055185, 0.110424, 0.037989), - array<f32, 8>(-0.091272, -0.149872, -0.018825, 0.109157, 0.037674, -0.067088, -0.199940, 0.071112), - array<f32, 8>(0.170814, 0.171591, -0.039657, 0.146638, -0.054918, -0.043451, 0.262821, 0.119666), - array<f32, 8>(0.183810, -0.147660, -0.144689, 0.045301, 0.055273, 0.017425, 0.136362, 0.171734), - array<f32, 8>(-0.078196, 0.116630, -0.138657, -0.140199, -0.052198, -0.040295, -0.093252, 0.037989) + array<f32, 8>(0.050776, 0.145305, 0.309045, 0.095646, 0.069250, 0.091562, 0.104368, -0.079137), + array<f32, 8>(0.164026, 0.177092, 0.044580, 0.046258, -0.027545, 0.200648, 0.076028, 0.062649), + array<f32, 8>(-0.013401, -0.310101, -0.327040, 0.126563, 0.025688, -0.206316, -0.116446, 0.074564), + array<f32, 8>(-0.441754, -0.540065, 0.060513, -0.213499, -0.055374, -0.216724, -0.496711, -0.086230), + array<f32, 8>(-0.343383, -0.318127, -0.013048, -0.028292, -0.057646, 0.138652, -0.505853, -0.079137), + array<f32, 8>(0.128538, 0.185208, 0.143750, 0.033249, -0.086051, -0.059086, 0.215602, 0.062649), + array<f32, 8>(0.676250, 1.630099, 0.607661, 0.030156, -0.026996, -0.079094, 1.660149, 0.074564), + array<f32, 8>(-0.322890, -0.535821, -0.058422, -0.168132, -0.047933, -0.086663, -0.483740, -0.086230), + array<f32, 8>(-0.239337, -0.515330, -0.277411, 0.057439, 0.043940, -0.026889, -0.613344, -0.079137), + array<f32, 8>(0.003076, -0.081360, -0.030310, -0.065743, -0.173024, 0.096631, -0.119136, 0.062649), + array<f32, 8>(0.167414, 0.330700, 0.034772, -0.022976, -0.024081, -0.177135, 0.360095, 0.074564), + array<f32, 8>(-0.070716, 0.292075, 0.050386, -0.125934, 0.133216, -0.103645, 0.144046, -0.086230), + array<f32, 8>(0.811244, 1.643538, 0.522199, 0.097923, 0.142368, -0.038713, 1.688582, -0.079137), + array<f32, 8>(-0.031261, 0.346905, 0.240197, -0.002055, 0.118685, 0.032848, 0.510389, 0.062649), + array<f32, 8>(0.344896, 0.938348, 0.341917, 0.050385, 0.084289, 0.046516, 0.783707, 0.074564), + array<f32, 8>(-0.850713, -1.469689, -0.294657, -0.164037, -0.092880, 0.061508, -1.500781, -0.086230), + array<f32, 8>(0.389591, 0.683494, 0.002439, -0.010017, -0.015660, 0.023351, 0.785106, -0.079137), + array<f32, 8>(0.523457, 1.461654, 0.398994, -0.044208, 0.058039, 0.051383, 1.307295, 0.062649), + array<f32, 8>(-1.099840, -2.226157, -0.501527, 0.056492, -0.083877, 0.026329, -2.076680, 0.074564), + array<f32, 8>(-1.014440, -1.817657, -0.432406, -0.148341, -0.016945, -0.137044, -1.800227, -0.086230), + array<f32, 8>(-0.367173, -0.674535, -0.363408, 0.112350, -0.116234, 0.038804, -0.696121, -0.079137), + array<f32, 8>(-0.192392, -0.319170, -0.011619, -0.068632, -0.029520, -0.173155, -0.203234, 0.062649), + array<f32, 8>(-0.263401, -0.570472, -0.040810, 0.009899, -0.013845, 0.167633, -0.586179, 0.074564), + array<f32, 8>(0.094684, 0.336736, 0.049682, -0.180413, 0.077092, 0.012638, 0.221292, -0.086230), + array<f32, 8>(0.060319, 0.019695, -0.192884, 0.072798, 0.200872, -0.034011, -0.062420, -0.079137), + array<f32, 8>(-0.370658, -0.812558, -0.200161, -0.036007, -0.018058, -0.086703, -0.782617, 0.062649), + array<f32, 8>(0.317336, 0.550104, 0.135988, -0.178205, -0.013676, 0.139231, 0.508177, 0.074564), + array<f32, 8>(0.254718, 0.224792, 0.087829, -0.176151, -0.122549, 0.091093, 0.209860, -0.086230), + array<f32, 8>(0.192829, 0.461542, -0.013508, 0.032104, -0.021351, -0.096027, 0.339702, -0.079137), + array<f32, 8>(-0.104010, -0.298247, -0.116938, -0.150735, 0.122506, -0.025690, -0.366966, 0.062649), + array<f32, 8>(-0.276402, -0.735600, -0.403772, -0.152257, 0.001317, 0.105985, -0.875079, 0.074564), + array<f32, 8>(-0.120489, -0.071038, -0.022229, -0.131207, 0.038601, 0.250746, -0.151521, -0.086230), + array<f32, 8>(-0.288460, -0.390053, -0.267864, 0.112847, -0.120413, -0.049538, -0.340997, -0.079137), + array<f32, 8>(-0.194778, -0.180384, -0.177683, 0.003346, -0.058691, -0.029936, -0.252620, 0.062649), + array<f32, 8>(0.153882, 0.144423, 0.108608, -0.009042, -0.003351, -0.047760, 0.133294, 0.074564), + array<f32, 8>(0.008640, 0.231106, 0.035237, -0.011429, 0.048569, 0.161634, 0.241032, -0.086230) ); const weights_layer1: array<array<f32, 8>, 100> = array( - array<f32, 8>(0.016434, 0.032528, 0.014184, -0.048073, 0.017625, 0.025898, 0.035017, -0.024743), - array<f32, 8>(-0.086195, 0.041682, 0.071182, -0.062423, -0.016809, -0.004450, -0.035094, 0.087283), - array<f32, 8>(-0.070627, 0.033625, 0.025104, -0.086014, -0.037153, -0.019897, 0.046995, -0.025117), - array<f32, 8>(-0.042999, 0.043590, -0.107547, 0.114733, -0.006566, 0.067189, 0.042215, -0.019137), - array<f32, 8>(-0.105321, 0.188555, -0.033070, 0.005478, -0.019701, -0.006125, -0.006207, -0.024743), - array<f32, 8>(-0.018644, 0.021491, 0.042713, 0.047051, 0.009930, -0.074932, 0.016032, 0.087283), - array<f32, 8>(-0.036977, 0.022728, -0.031943, -0.134525, -0.024105, 0.022550, 0.038872, -0.025117), - array<f32, 8>(-0.017196, 0.102869, -0.028182, 0.153466, -0.024727, 0.008610, -0.029993, -0.019137), - array<f32, 8>(-0.135262, 0.264086, 0.052894, 0.104268, -0.044918, 0.085902, 0.119113, -0.024743), - array<f32, 8>(0.052648, 0.081481, 0.063582, 0.016832, 0.100333, -0.095727, 0.022089, 0.087283), - array<f32, 8>(0.028176, 0.006417, -0.010806, -0.049843, 0.010670, 0.058400, 0.051595, -0.025117), - array<f32, 8>(-0.078976, 0.040644, -0.116569, 0.145770, 0.019023, 0.071229, 0.056151, -0.019137), - array<f32, 8>(-0.028693, 0.154285, -0.019369, 0.111634, 0.022241, -0.015484, 0.039056, -0.024743), - array<f32, 8>(-0.052688, -0.046999, -0.000280, -0.024856, 0.012262, 0.028524, -0.028633, 0.087283), - array<f32, 8>(-0.004525, 0.052883, 0.002108, -0.096774, 0.052697, -0.055029, -0.022623, -0.025117), - array<f32, 8>(-0.076488, 0.013246, -0.097773, 0.023400, 0.027572, 0.041318, 0.012556, -0.019137), - array<f32, 8>(0.028093, 0.007624, 0.021861, -0.079392, 0.053487, 0.065200, -0.084020, -0.024743), - array<f32, 8>(-0.027503, 0.010973, 0.077242, 0.105956, 0.003837, -0.032827, 0.062214, 0.087283), - array<f32, 8>(0.028159, 0.036260, 0.051032, -0.057339, -0.032511, -0.019800, -0.113611, -0.025117), - array<f32, 8>(-0.004438, 0.024692, -0.151404, 0.097579, -0.031042, 0.067771, -0.062624, -0.019137), - array<f32, 8>(-0.053284, 0.062195, 0.018403, -0.145339, 0.008091, -0.048359, 0.060338, -0.024743), - array<f32, 8>(0.035264, 0.022147, 0.014877, -0.010450, 0.048411, -0.011475, -0.025409, 0.087283), - array<f32, 8>(-0.095181, 0.095906, 0.022414, -0.068326, -0.035929, 0.041247, -0.066456, -0.025117), - array<f32, 8>(0.011500, 0.097427, -0.072423, 0.068691, 0.006129, 0.025585, -0.066149, -0.019137), - array<f32, 8>(0.000253, 0.207033, 0.041903, -0.018208, 0.080300, 0.029738, 0.170740, -0.024743), - array<f32, 8>(0.118473, -0.002532, 0.082055, 0.029355, -0.017353, -0.094582, -0.028445, 0.087283), - array<f32, 8>(-0.167765, 0.166992, -0.051393, 0.018985, 0.000246, -0.060339, -0.036368, -0.025117), - array<f32, 8>(-0.037902, 0.123576, -0.135429, 0.018780, 0.069222, -0.048750, 0.010303, -0.019137), - array<f32, 8>(0.092400, 0.317862, 0.056507, 0.269526, 0.015330, -0.078774, 0.213070, -0.024743), - array<f32, 8>(0.147994, -0.056838, -0.046159, 0.069406, -0.025076, -0.018648, 0.019698, 0.087283), - array<f32, 8>(-0.063516, 0.051390, -0.043280, 0.053602, 0.046148, 0.032013, -0.012079, -0.025117), - array<f32, 8>(-0.069387, 0.008554, -0.016392, 0.041428, 0.069626, -0.028865, 0.031068, -0.019137), - array<f32, 8>(0.001597, 0.092924, 0.064679, 0.242996, 0.070280, -0.047444, 0.155082, -0.024743), - array<f32, 8>(0.003761, -0.067148, 0.020808, -0.009994, 0.064026, -0.023521, -0.061335, 0.087283), - array<f32, 8>(0.013300, 0.048670, -0.058611, -0.104133, 0.060389, 0.022588, -0.085768, -0.025117), - array<f32, 8>(0.001996, 0.035599, -0.067395, 0.113355, -0.054467, 0.021354, -0.020545, -0.019137), - array<f32, 8>(0.024443, 0.016439, 0.095606, -0.006610, 0.056457, 0.009034, 0.048181, -0.024743), - array<f32, 8>(-0.081707, 0.089380, 0.012570, 0.040154, 0.006970, -0.097259, -0.003088, 0.087283), - array<f32, 8>(0.037347, -0.012520, -0.009110, -0.164514, -0.052337, 0.031441, -0.117828, -0.025117), - array<f32, 8>(-0.050695, 0.023007, -0.086370, 0.106721, -0.022698, -0.063039, 0.007639, -0.019137), - array<f32, 8>(-0.032690, 0.100637, 0.090612, -0.170336, -0.013709, 0.096891, -0.064632, -0.024743), - array<f32, 8>(0.005479, 0.068678, -0.014147, -0.117601, 0.033542, -0.026603, -0.034334, 0.087283), - array<f32, 8>(-0.049645, 0.161140, 0.019592, -0.020424, 0.021700, 0.046387, 0.070111, -0.025117), - array<f32, 8>(-0.075219, -0.030338, -0.042611, 0.045346, -0.012298, -0.029272, -0.048395, -0.019137), - array<f32, 8>(0.110303, 0.091954, 0.026566, -0.013034, -0.001918, 0.025677, -0.003027, -0.024743), - array<f32, 8>(0.084352, 0.004527, 0.042981, 0.040333, 0.011019, 0.011699, 0.053396, 0.087283), - array<f32, 8>(-0.151306, 0.282692, 0.038388, 0.199704, -0.024410, -0.021070, 0.135509, -0.025117), - array<f32, 8>(0.008868, 0.058833, -0.035204, 0.017617, 0.036727, -0.084137, 0.008426, -0.019137), - array<f32, 8>(0.111690, 0.202555, 0.002230, 0.104773, 0.043414, 0.094714, 0.024386, -0.024743), - array<f32, 8>(0.109470, -0.130369, -0.049615, 0.027567, 0.015618, 0.010219, -0.035927, 0.087283), - array<f32, 8>(0.013092, 0.191465, -0.022463, 0.306655, 0.046994, 0.023051, 0.114596, -0.025117), - array<f32, 8>(-0.095580, 0.067644, -0.069810, 0.058185, 0.079298, 0.042359, 0.102818, -0.019137), - array<f32, 8>(0.163902, 0.060505, 0.020250, 0.151637, -0.041346, 0.079968, -0.066609, -0.024743), - array<f32, 8>(0.007401, -0.119463, 0.029195, -0.118251, -0.057537, 0.057136, -0.162722, 0.087283), - array<f32, 8>(-0.036401, 0.152383, -0.049404, 0.188484, 0.069434, -0.056077, -0.041920, -0.025117), - array<f32, 8>(-0.070811, 0.042628, -0.080224, 0.133910, 0.054912, -0.086587, 0.104432, -0.019137), - array<f32, 8>(0.045319, 0.031249, -0.007304, -0.008136, 0.001678, 0.019408, -0.016683, -0.024743), - array<f32, 8>(-0.054316, -0.005207, -0.003794, -0.009173, -0.015797, 0.088869, -0.054766, 0.087283), - array<f32, 8>(0.036646, 0.049626, -0.038869, -0.049720, 0.012847, -0.054911, -0.012426, -0.025117), - array<f32, 8>(-0.002965, 0.087409, -0.027885, 0.089920, 0.013074, -0.106163, 0.065504, -0.019137), - array<f32, 8>(-0.004488, 0.102517, 0.092916, -0.079512, 0.001532, -0.048995, -0.041429, -0.024743), - array<f32, 8>(-0.062161, -0.027813, 0.037159, -0.030745, -0.017068, 0.084630, -0.046134, 0.087283), - array<f32, 8>(-0.017315, 0.191771, -0.050660, -0.140278, 0.038320, 0.037753, -0.043447, -0.025117), - array<f32, 8>(-0.079621, 0.091290, -0.098575, 0.055638, 0.007634, -0.051456, -0.011530, -0.019137), - array<f32, 8>(-0.044260, 0.010435, 0.104869, -0.029082, 0.038487, 0.004167, 0.020321, -0.024743), - array<f32, 8>(0.004107, -0.049898, -0.011912, 0.126974, 0.074958, 0.038876, 0.027066, 0.087283), - array<f32, 8>(0.022312, 0.332216, -0.028889, 0.171475, 0.052267, -0.023821, 0.193472, -0.025117), - array<f32, 8>(0.009104, -0.027289, -0.016718, 0.092231, 0.023904, -0.034162, 0.004693, -0.019137), - array<f32, 8>(0.022922, -0.036846, 0.071670, -0.118853, -0.046374, 0.005972, -0.079006, -0.024743), - array<f32, 8>(-0.086613, -0.033065, 0.032719, 0.081925, -0.025818, -0.065103, 0.010425, 0.087283), - array<f32, 8>(0.014945, 0.330249, -0.062079, 0.408858, 0.044895, -0.036703, 0.195226, -0.025117), - array<f32, 8>(0.021647, 0.086135, -0.013491, 0.027627, -0.033652, -0.016643, -0.037425, -0.019137), - array<f32, 8>(-0.028124, 0.039691, 0.108537, -0.123861, -0.071841, -0.034232, 0.009737, -0.024743), - array<f32, 8>(-0.095938, -0.080740, 0.047554, -0.145590, -0.041365, 0.031658, -0.027601, 0.087283), - array<f32, 8>(-0.050837, 0.179578, 0.020990, 0.240896, -0.038067, 0.007052, 0.036244, -0.025117), - array<f32, 8>(-0.100474, 0.012669, -0.123589, 0.147449, -0.056871, 0.029335, -0.041989, -0.019137), - array<f32, 8>(0.000809, 0.020182, 0.123381, 0.009990, 0.061892, -0.056804, 0.049866, -0.024743), - array<f32, 8>(-0.006123, 0.085572, -0.065080, -0.003607, -0.100605, -0.015746, 0.045932, 0.087283), - array<f32, 8>(-0.068945, 0.037700, -0.068738, 0.088604, 0.034364, -0.027429, -0.023157, -0.025117), - array<f32, 8>(-0.028689, 0.018089, -0.144344, 0.097751, -0.022261, 0.004934, 0.044538, -0.019137), - array<f32, 8>(-0.072695, 0.099329, 0.037965, -0.007148, -0.061809, -0.014461, -0.050644, -0.024743), - array<f32, 8>(-0.043364, -0.019908, 0.033602, -0.011686, -0.046646, -0.005387, 0.057703, 0.087283), - array<f32, 8>(0.020640, 0.058992, 0.042389, -0.111803, -0.000105, -0.069637, -0.058816, -0.025117), - array<f32, 8>(-0.090411, -0.034394, -0.135574, 0.085031, -0.020320, -0.002235, 0.079036, -0.019137), - array<f32, 8>(-0.035238, 0.052656, 0.011918, -0.032684, 0.067555, -0.047663, -0.013151, -0.024743), - array<f32, 8>(0.077223, 0.067583, -0.053024, 0.063017, -0.023909, -0.041936, 0.039041, 0.087283), - array<f32, 8>(-0.011154, 0.253355, 0.006886, 0.066990, -0.018613, -0.033851, 0.022408, -0.025117), - array<f32, 8>(-0.042376, 0.097067, -0.107170, 0.053378, 0.081423, -0.059980, -0.019982, -0.019137), - array<f32, 8>(-0.086462, 0.042703, 0.052655, -0.129460, -0.073930, -0.004732, -0.089001, -0.024743), - array<f32, 8>(0.019294, 0.036932, -0.046783, 0.172396, -0.003345, 0.029704, -0.013067, 0.087283), - array<f32, 8>(0.142370, 0.248269, -0.072705, 0.188676, 0.028917, -0.058974, -0.007950, -0.025117), - array<f32, 8>(-0.021378, 0.064055, -0.103605, -0.015491, -0.002155, -0.048161, -0.045529, -0.019137), - array<f32, 8>(0.006191, 0.063159, 0.005143, -0.101334, -0.020484, 0.038330, 0.010742, -0.024743), - array<f32, 8>(-0.123413, 0.027806, -0.063111, 0.060050, -0.087346, 0.080827, 0.016499, 0.087283), - array<f32, 8>(0.054552, 0.047349, 0.029259, 0.152502, -0.013689, -0.035447, -0.006584, -0.025117), - array<f32, 8>(-0.034984, 0.059972, -0.147872, 0.096835, 0.055766, -0.001973, -0.033631, -0.019137), - array<f32, 8>(0.004488, -0.060204, 0.120817, -0.095007, 0.040546, 0.026207, -0.011824, -0.024743), - array<f32, 8>(0.000380, 0.102988, 0.010112, -0.011668, 0.004855, -0.019988, -0.035633, 0.087283), - array<f32, 8>(0.003894, -0.083172, -0.046051, -0.005485, 0.017347, -0.057191, -0.085077, -0.025117), - array<f32, 8>(-0.066185, 0.092341, -0.135679, 0.009092, -0.015954, 0.003226, -0.010182, -0.019137) + array<f32, 8>(-0.022037, -0.011357, -0.038178, -0.025439, -0.007610, 0.002310, 0.274992, 0.250080), + array<f32, 8>(-0.114824, -0.213736, -0.146606, 0.032273, 0.036554, 0.176143, -0.085490, 0.166326), + array<f32, 8>(-0.036476, 0.011988, 0.007331, -0.059855, -0.037985, 0.014305, 0.048022, -0.135757), + array<f32, 8>(0.001105, -0.032987, -0.088311, 0.008265, -0.040310, -0.032674, -0.010979, 0.287455), + array<f32, 8>(-0.206288, 0.030239, -0.011794, -0.005073, -0.038910, 0.044310, 0.235307, 0.250080), + array<f32, 8>(-0.064199, 0.805756, -0.937977, 0.032698, -0.032832, 0.094537, 0.776350, 0.166326), + array<f32, 8>(-0.005259, 0.016433, -0.458667, 0.014542, 0.010433, 0.061346, 0.006991, -0.135757), + array<f32, 8>(0.015795, 0.029774, -0.078088, -0.009711, 0.044509, 0.030028, -0.089672, 0.287455), + array<f32, 8>(-0.129059, 0.178803, -0.027768, 0.006593, 0.008567, -0.062073, -0.704152, 0.250080), + array<f32, 8>(0.158329, 0.176160, -0.004749, 0.065274, -0.056188, 0.060775, 0.183591, 0.166326), + array<f32, 8>(0.098566, 0.397831, -0.491598, -0.072183, -0.038251, 0.153236, 0.097461, -0.135757), + array<f32, 8>(-0.007942, 0.108996, -0.060177, 0.015638, -0.070505, 0.052296, 0.003331, 0.287455), + array<f32, 8>(0.005881, 0.072516, -0.062198, 0.162074, -0.042630, -0.068772, -0.539424, 0.250080), + array<f32, 8>(-0.077856, 0.073322, -0.033103, 0.035847, 0.057960, 0.076113, 0.130392, 0.166326), + array<f32, 8>(0.244582, 0.113334, 0.224182, 0.033418, 0.034061, 0.087043, -0.066489, -0.135757), + array<f32, 8>(0.004016, -0.002289, 0.065081, -0.010875, 0.010435, 0.065411, -0.062971, 0.287455), + array<f32, 8>(0.123818, -0.076170, -0.165203, 0.064549, -0.024071, -0.004345, -0.256075, 0.250080), + array<f32, 8>(0.004730, 0.003694, -0.079575, 0.018747, 0.006866, 0.054578, 0.123745, 0.166326), + array<f32, 8>(-0.043009, 0.053401, -0.080719, 0.027535, -0.007414, 0.051901, -0.195509, -0.135757), + array<f32, 8>(-0.034492, 0.065961, -0.031183, -0.004915, 0.053564, 0.046732, -0.148832, 0.287455), + array<f32, 8>(-0.043995, 0.192748, -0.085065, -0.102056, -0.014574, -0.004426, 0.258175, 0.250080), + array<f32, 8>(-0.143291, 0.046486, 0.229902, 0.008699, 0.025714, -0.013471, -0.116622, 0.166326), + array<f32, 8>(0.054206, 0.089147, -0.233987, -0.030815, -0.010568, 0.036058, 0.157440, -0.135757), + array<f32, 8>(0.046133, 0.099020, 0.090082, -0.025547, -0.019725, 0.030797, -0.113654, 0.287455), + array<f32, 8>(-0.361063, -0.148368, 0.588614, 0.085678, 0.070940, 0.037541, -0.557322, 0.250080), + array<f32, 8>(0.331137, 0.389426, 0.532330, -0.189957, -0.048010, -0.046118, 0.414890, 0.166326), + array<f32, 8>(-0.210435, 0.267520, 0.108725, 0.062912, -0.064407, 0.061059, 0.026028, -0.135757), + array<f32, 8>(-0.031002, -0.027015, 0.095399, 0.108016, 0.045867, -0.057150, -0.160753, 0.287455), + array<f32, 8>(0.103668, 0.288984, -0.569691, -0.419980, 0.059763, -0.047595, 0.546293, 0.250080), + array<f32, 8>(0.146448, 0.184523, 0.135939, -0.356627, 0.043584, -0.087657, -0.153357, 0.166326), + array<f32, 8>(-0.371824, 0.276911, 0.724235, 0.223277, -0.021657, 0.102646, -0.020702, -0.135757), + array<f32, 8>(-0.106555, 0.098876, -0.019913, 0.094628, 0.023164, 0.001438, -0.175632, 0.287455), + array<f32, 8>(0.105429, -0.299267, 0.812072, -0.114869, 0.046925, 0.028062, -0.467336, 0.250080), + array<f32, 8>(0.016923, 0.125742, -0.173072, -0.169833, 0.028469, -0.072477, 0.126823, 0.166326), + array<f32, 8>(-0.075566, 0.313056, -0.359472, 0.153130, 0.029031, -0.034312, 0.082457, -0.135757), + array<f32, 8>(0.026557, 0.071639, 0.003312, -0.011997, 0.003932, -0.033687, 0.028516, 0.287455), + array<f32, 8>(-0.070403, 0.113099, -0.408240, -0.055484, -0.123035, -0.059720, -0.048390, 0.250080), + array<f32, 8>(0.052911, -0.161632, -0.025380, -0.023286, 0.028802, -0.064272, -0.039456, 0.166326), + array<f32, 8>(0.073324, -0.188926, 0.092236, -0.058543, 0.065045, -0.025796, 0.024144, -0.135757), + array<f32, 8>(-0.002435, -0.057571, 0.056495, 0.004751, 0.076798, -0.052277, 0.093771, 0.287455), + array<f32, 8>(0.028072, 0.027778, -0.031785, -0.038053, 0.036874, -0.032346, 0.368810, 0.250080), + array<f32, 8>(-0.100564, 0.046550, 0.159493, -0.002762, 0.025387, -0.022888, -0.130698, 0.166326), + array<f32, 8>(0.004231, 0.001341, 0.126041, -0.003827, -0.022466, 0.014131, -0.028833, -0.135757), + array<f32, 8>(-0.004076, 0.054488, 0.223315, 0.059217, -0.006713, 0.073679, -0.194765, 0.287455), + array<f32, 8>(-0.509636, -0.325766, -0.703839, -0.086531, 0.012823, -0.055996, -0.561538, 0.250080), + array<f32, 8>(0.132983, -0.405094, 0.880033, 0.049326, 0.002537, -0.030962, -0.586856, 0.166326), + array<f32, 8>(0.020872, -0.011894, 0.356289, 0.001646, -0.073971, -0.050659, -0.074421, -0.135757), + array<f32, 8>(0.190074, -0.056477, 0.111684, 0.057681, -0.008628, 0.090852, -0.096644, 0.287455), + array<f32, 8>(-0.142547, 0.729245, -1.905081, -0.854673, -0.016751, 0.057122, 1.961305, 0.250080), + array<f32, 8>(-0.122748, -0.194694, 0.005057, 0.149273, -0.054276, -0.086540, -0.371070, 0.166326), + array<f32, 8>(-0.078841, -0.559091, 1.060476, 0.109863, 0.043554, -0.087797, -0.363317, -0.135757), + array<f32, 8>(-0.112168, -0.017596, 0.025643, 0.023165, -0.052900, 0.035428, -0.297822, 0.287455), + array<f32, 8>(0.639392, 0.072433, 0.792811, -0.680461, -0.051572, 0.066339, -0.238730, 0.250080), + array<f32, 8>(0.005396, -0.025571, -0.212165, 0.005210, 0.108878, 0.049490, 0.183066, 0.166326), + array<f32, 8>(-0.219634, -0.127836, -0.251796, 0.090907, -0.025802, 0.023540, -0.134166, -0.135757), + array<f32, 8>(-0.023812, 0.074732, 0.005462, 0.209177, -0.005216, -0.007636, -0.034679, 0.287455), + array<f32, 8>(-0.113468, -0.007712, 0.101197, -0.107667, -0.029050, -0.076644, -0.071670, 0.250080), + array<f32, 8>(-0.019516, -0.183079, 0.038963, 0.016792, -0.052769, 0.028860, -0.023395, 0.166326), + array<f32, 8>(0.070917, 0.083538, 0.149507, 0.016568, 0.032980, -0.031634, 0.147819, -0.135757), + array<f32, 8>(0.023546, 0.055347, 0.031731, -0.006261, -0.043288, 0.089063, 0.122476, 0.287455), + array<f32, 8>(0.077303, 0.093933, -0.133248, -0.144848, 0.122112, 0.072564, 0.665726, 0.250080), + array<f32, 8>(0.094796, -0.017913, -0.056415, 0.050442, 0.049468, -0.004330, -0.004675, 0.166326), + array<f32, 8>(0.081932, -0.072143, 0.038391, 0.059156, -0.045227, -0.022634, 0.129885, -0.135757), + array<f32, 8>(0.058626, -0.023134, -0.084915, 0.095507, -0.066120, -0.083654, -0.011045, 0.287455), + array<f32, 8>(-0.440352, 0.128490, 0.180521, -0.220331, 0.028954, -0.012232, 0.070911, 0.250080), + array<f32, 8>(0.152992, -0.052855, -0.556286, -0.067897, -0.044583, 0.053964, 0.229510, 0.166326), + array<f32, 8>(0.051917, -0.007076, -0.097792, 0.092012, 0.002001, 0.006682, 0.062440, -0.135757), + array<f32, 8>(0.160159, -0.074408, 0.014440, 0.057185, -0.076679, -0.034120, 0.031509, 0.287455), + array<f32, 8>(-0.574733, 0.078090, 1.083416, -0.301946, 0.078499, -0.053633, -0.562402, 0.250080), + array<f32, 8>(-0.069098, 0.041351, -0.217530, -0.122041, 0.026862, 0.098952, 0.162305, 0.166326), + array<f32, 8>(0.239932, -0.094115, -0.497926, 0.018609, -0.038334, -0.012468, 0.062189, -0.135757), + array<f32, 8>(-0.003505, -0.077201, -0.084522, -0.059981, 0.013542, -0.037153, 0.130564, 0.287455), + array<f32, 8>(-0.089497, -0.021620, -0.069529, -0.186632, -0.005551, -0.041119, -0.480752, 0.250080), + array<f32, 8>(-0.053926, 0.019567, 0.078085, -0.011655, 0.027518, 0.009200, -0.096423, 0.166326), + array<f32, 8>(0.013737, 0.023040, -0.042862, -0.085150, 0.007873, -0.113700, 0.079800, -0.135757), + array<f32, 8>(-0.029501, 0.008841, -0.000009, -0.012492, 0.007784, -0.011196, -0.048741, 0.287455), + array<f32, 8>(-0.083349, 0.096130, -0.005163, 0.078800, -0.085262, 0.011195, 0.489070, 0.250080), + array<f32, 8>(0.025634, -0.135875, -0.001347, -0.008538, 0.000909, -0.040137, -0.056517, 0.166326), + array<f32, 8>(0.020171, 0.007669, 0.015831, 0.008122, 0.031861, -0.000301, 0.164499, -0.135757), + array<f32, 8>(-0.004496, 0.081633, -0.016284, -0.003917, 0.007292, -0.060676, 0.069114, 0.287455), + array<f32, 8>(-0.100744, -0.063920, 0.231186, -0.092563, 0.051642, 0.098535, 0.214538, 0.250080), + array<f32, 8>(0.045380, 0.050332, 0.032936, 0.065874, 0.012431, -0.104630, -0.151902, 0.166326), + array<f32, 8>(-0.078775, 0.028060, 0.040522, 0.005555, -0.077828, -0.035174, 0.049804, -0.135757), + array<f32, 8>(-0.013158, -0.051225, -0.024721, 0.049027, 0.019739, 0.006795, 0.150877, 0.287455), + array<f32, 8>(0.049298, 0.013024, -0.076617, -0.171691, 0.031634, 0.076930, 0.514842, 0.250080), + array<f32, 8>(-0.066733, -0.179406, 0.157354, -0.026597, -0.032061, 0.006792, -0.156999, 0.166326), + array<f32, 8>(-0.054383, -0.080777, 0.038433, -0.001758, 0.080513, 0.029891, 0.043766, -0.135757), + array<f32, 8>(-0.028991, 0.026645, -0.034360, 0.072301, 0.048352, -0.087052, -0.103836, 0.287455), + array<f32, 8>(-0.087492, -0.032150, -0.204844, -0.037298, 0.117656, 0.033372, 0.240865, 0.250080), + array<f32, 8>(0.049361, -0.124975, 0.069923, -0.043308, -0.007160, -0.005694, -0.097793, 0.166326), + array<f32, 8>(-0.001482, -0.128413, 0.150176, 0.002900, -0.001795, -0.072427, -0.049493, -0.135757), + array<f32, 8>(0.008130, -0.042932, 0.009991, 0.059851, -0.113746, -0.030924, -0.070415, 0.287455), + array<f32, 8>(-0.177598, 0.041035, 0.117032, -0.053235, -0.039560, 0.191917, 0.312992, 0.250080), + array<f32, 8>(-0.033296, -0.157606, -0.012850, 0.004795, -0.082052, -0.052607, -0.170885, 0.166326), + array<f32, 8>(-0.098478, -0.051063, 0.078220, -0.017468, 0.156457, -0.114034, 0.003899, -0.135757), + array<f32, 8>(0.091451, 0.086958, -0.004282, 0.034556, 0.077610, -0.149302, 0.051133, 0.287455), + array<f32, 8>(-0.081812, 0.029619, 0.186367, -0.100106, -0.090392, 0.080484, 0.494788, 0.250080), + array<f32, 8>(0.011684, 0.089406, 0.063198, -0.026279, -0.093644, -0.038315, -0.074684, 0.166326), + array<f32, 8>(0.011402, -0.097852, 0.002891, 0.040359, 0.012175, -0.069641, 0.072274, -0.135757), + array<f32, 8>(-0.008804, -0.045204, -0.042860, 0.039318, 0.067082, -0.033501, 0.060682, 0.287455) ); const weights_layer2: array<array<f32, 8>, 9> = array( - array<f32, 8>(0.071600, -0.118269, 0.093769, 0.096974, -0.002193, -0.065924, -0.125094, 0.018248), - array<f32, 8>(-0.089131, -0.053007, 0.150626, -0.051485, 0.087371, -0.078030, -0.045468, 0.018248), - array<f32, 8>(0.042144, 0.146191, 0.152445, 0.028572, 0.064491, -0.061860, 0.037828, 0.018248), - array<f32, 8>(-0.084747, -0.133062, -0.030736, 0.061174, -0.055809, -0.012031, 0.126923, 0.018248), - array<f32, 8>(-0.017155, -0.105189, 0.003457, 0.105491, 0.003587, 0.089110, -0.001623, 0.018248), - array<f32, 8>(-0.028012, -0.066691, 0.125358, -0.027705, 0.032134, 0.044475, -0.036991, 0.018248), - array<f32, 8>(0.094536, -0.038367, -0.009421, 0.027049, -0.103427, -0.065209, -0.110071, 0.018248), - array<f32, 8>(0.147956, 0.028446, 0.031066, 0.055667, -0.039952, 0.069251, 0.020060, 0.018248), - array<f32, 8>(0.067507, 0.154407, -0.017526, 0.064009, -0.014328, 0.022175, 0.015376, 0.018248) + array<f32, 8>(0.037200, -0.000017, -0.018497, -0.003534, 0.030013, -0.090479, 0.001918, 0.138982), + array<f32, 8>(0.083223, -0.004122, -0.016300, 0.082004, 0.033656, 0.088840, -0.005690, 0.138982), + array<f32, 8>(0.037748, 0.005706, -0.018261, 0.142010, -0.032141, -0.003983, -0.007782, 0.138982), + array<f32, 8>(0.069641, -0.003164, -0.036343, -0.004816, 0.007338, 0.044418, 0.013717, 0.138982), + array<f32, 8>(0.163624, 0.002765, -0.050305, 0.090719, 0.005622, 0.008653, 0.546115, 0.138982), + array<f32, 8>(0.092936, 0.031496, -0.045444, 0.300035, -0.006285, 0.055285, -0.004353, 0.138982), + array<f32, 8>(0.032132, 0.008195, -0.044093, -0.006899, 0.013646, 0.028989, -0.067581, 0.138982), + array<f32, 8>(0.070102, 0.059849, -0.176450, 0.054142, -0.029364, -0.049840, -0.174284, 0.138982), + array<f32, 8>(0.037613, 0.157641, -0.066564, 0.051270, -0.015937, -0.026678, -0.108225, 0.138982) ); |
