aboutsummaryrefslogtreecommitdiff
path: root/src/train5.py
diff options
context:
space:
mode:
authortslil <tslil@posteo.de>2021-01-12 17:01:29 -0500
committertslil <tslil@posteo.de>2026-08-28 19:37:41 +0100
commit91640db661fdcc04960d1f048ac60c2c4b2c5319 (patch)
treef983f0448f510401ee407a39d2fa12531f1cc32d /src/train5.py
parent3d1e8f16ac53aad322f2c681f5f3c25918c58602 (diff)
Auto-generating weights
Diffstat (limited to 'src/train5.py')
-rw-r--r--src/train5.py29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/train5.py b/src/train5.py
index adb81a5..71a8652 100644
--- a/src/train5.py
+++ b/src/train5.py
@@ -119,20 +119,33 @@ def write_weights(model):
string = re.sub(r'([0-9]+)\n', r'\1,\n', string)
string = re.sub(r'([0-9]+) ', r'\1, ', string)
return string
- f = open("weights.txt", "w")
+ # Prepare everything in a sane memory order
conv2d_weights = np.array(transpose(model.trainable_variables[0], perm=[3, 1, 0, 2]))
conv2d_biases = np.array(model.trainable_variables[1])
dense1_weights = np.array(transpose(model.trainable_variables[2], perm=[1, 0]))
dense1_biases = np.array(model.trainable_variables[3])
dense2_weights = np.array(transpose(model.trainable_variables[4], perm=[1, 0]))
dense2_biases = np.array(model.trainable_variables[5])
- output_weights = np.array(transpose(model.trainable_variables[6], perm=[1, 0]))
- output_biases = np.array(model.trainable_variables[7])
- for v in [conv2d_weights, conv2d_biases,
- dense1_weights, dense1_biases,
- dense2_weights, dense2_biases,
- output_weights, output_biases]:
- f.write(fix(str(v))+"\n\n")
+ output_weights = np.array(transpose(model.trainable_variables[6], perm=[1, 0])[0])
+ output_bias = np.array(model.trainable_variables[7][0])
+ # Prepare formatting
+ names = ["conv2d_weights[KERN_NUM][KERN_SIZE][KERN_SIZE][KERN_CHAN]",
+ "conv2d_biases[KERN_NUM]",
+ "dense1_weights[DENSE1_NUM][CONV_NUM+2]",
+ "dense1_biases[DENSE1_NUM]",
+ "dense2_weights[DENSE2_NUM][DENSE1_NUM]",
+ "dense2_biases[DENSE2_NUM]",
+ "output_weights[DENSE2_NUM]",
+ "output_bias"]
+ variables = [conv2d_weights, conv2d_biases,
+ dense1_weights, dense1_biases,
+ dense2_weights, dense2_biases,
+ output_weights, output_bias]
+ # Write to file
+ f = open("weights.c", "w")
+ f.write("#include \"weights.h\"\n\n")
+ for (name, val) in zip(names, variables):
+ f.write("const float "+name+" =\n"+fix(str(val))+";\n\n")
f.close()