Views
No views yet
0 → setosa1 → versicolor2 → virginicasklearn.datasets.load_iris)sepal length (cm)sepal width (cm)petal length (cm)petal width (cm)y ∈ {0,1,2}sparse_categorical_crossentropy)Normalization layer?tf.keras.layers.Normalization layer learns feature-wise mean and variance from the training set via adapt(...).learning_rate=1e-3)sparse_categorical_crossentropystratify=y, random_state=42)validation_split=0.2)tf.random.set_seed(42)np.random.seed(42)Note: Exact accuracy may vary slightly across environments due to numerical differences and nondeterminism in some TF ops.
1normalizer = tf.keras.layers.Normalization(axis=-1)
2normalizer.adapt(X_train.to_numpy())
3
4model = tf.keras.Sequential([
5 tf.keras.Input(shape=(4,)),
6 normalizer,
7 tf.keras.layers.Dense(16, activation="relu"),
8 tf.keras.layers.Dense(16, activation="relu"),
9 tf.keras.layers.Dense(3, activation="softmax"),
10])
11
12model.compile(
13 optimizer=tf.keras.optimizers.Adam(learning_rate=1e-3),
14 loss="sparse_categorical_crossentropy",
15 metrics=["accuracy"]
16)
17
18model.fit(
19 X_train.to_numpy(), y_train.to_numpy(),
20 validation_split=0.2,
21 epochs=100,
22 batch_size=16,
23 verbose=0
24)
251import numpy as np
2import pandas as pd
3import tensorflow as tf
4from huggingface_hub import hf_hub_download
5
6filename = "iris_mlp.keras"
7repo_id = "studentscolab/iris_keras"
8
9model_path = hf_hub_download(repo_id=repo_id, filename=filename)
10
11model = tf.keras.models.load_model(model_path)
12
13x_new = pd.DataFrame([{
14 "sepal length (cm)": 5.1,
15 "sepal width (cm)": 3.5,
16 "petal length (cm)": 1.4,
17 "petal width (cm)": 0.2,
18}])
19
20proba = model.predict(x_new.to_numpy(), verbose=0)[0] # shape: (3,)
21pred = int(np.argmax(proba))
22
23print("Probabilities:", proba)
24print("Predicted class:", pred)
25