teachable-machine-app / test_keras_export.py
hammasShani's picture
Removed dataset files
7c6da0f
Raw
History Blame Contribute Delete
1.13 kB
import tensorflow as tf
import numpy as np
# Mock classes and centroids
classes_ = ["cat", "dog"]
centroids = {"cat": np.random.randn(1280), "dog": np.random.randn(1280)}
for c in centroids:
centroids[c] = centroids[c] / np.linalg.norm(centroids[c])
inputs = tf.keras.Input(shape=(224, 224, 3))
# Dummy base
base = tf.keras.applications.MobileNetV2(
input_shape=(224, 224, 3),
include_top=False,
weights=None,
pooling="avg"
)
x = base(inputs)
x = tf.math.l2_normalize(x, axis=1)
num_classes = len(classes_)
dense = tf.keras.layers.Dense(num_classes, use_bias=False, name="dot_product")
x = dense(x)
# Math ops
x = tf.subtract(2.0, tf.multiply(2.0, x))
x = tf.maximum(x, 0.0)
x = tf.sqrt(x + 1e-8)
logits = tf.multiply(x, -5.0)
probs = tf.keras.layers.Softmax(name="predictions")(logits)
model = tf.keras.Model(inputs=inputs, outputs=probs)
# Set weights
weights = np.zeros((1280, num_classes), dtype=np.float32)
for i, cls in enumerate(classes_):
weights[:, i] = centroids[cls]
dense.set_weights([weights])
model.save("test_export.keras")
model.save("test_export.h5")
print("Saved successfully!")