Numpy-Neuron / vis.py
Jensen-holm's picture
features added:
e11b37a
Raw
History Blame Contribute Delete
2.13 kB
import matplotlib
from sklearn import datasets
import plotly.express as px
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
matplotlib.use("Agg")
def show_digits():
digits = datasets.load_digits()
fig, axes = plt.subplots(nrows=1, ncols=4, figsize=(10, 3))
for ax, image, label in zip(axes, digits.images, digits.target):
ax.set_axis_off()
ax.imshow(image, cmap=plt.cm.gray_r, interpolation="nearest")
ax.set_title(f"Training: {label}")
return fig
def loss_history_plt(loss_history: list[float], loss_fn_name: str):
return px.line(
x=list(range(len(loss_history))),
y=loss_history,
title=f"{loss_fn_name} Loss vs. Training Epoch",
labels={
"x": "Epochs",
"y": f"{loss_fn_name} Loss",
},
)
def hits_and_misses(y_pred: np.ndarray, y_true: np.ndarray):
# decode the one hot encoded predictions
y_pred_decoded = np.argmax(y_pred, axis=1)
y_true_decoded = np.argmax(y_true, axis=1)
hits = y_pred_decoded == y_true_decoded
color = np.where(hits, "Hit", "Miss")
hover_text = [
"True: " + str(y_true_decoded[i]) + ", Pred: " + str(y_pred_decoded[i])
for i in range(len(y_pred_decoded))
]
return px.scatter(
x=np.arange(len(y_pred_decoded)),
y=y_true_decoded,
color=color,
title="Hits and Misses of Predictions on Validation Set",
labels={
"color": "Prediction Correctness",
"x": "Sample Index",
"y": "True Label",
},
color_discrete_map={"Hit": "blue", "Miss": "red"},
hover_name=hover_text,
)
def make_confidence_label(y_pred: np.ndarray, y_test: np.ndarray):
y_test_labels = np.argmax(y_test, axis=1)
confidence_dict: dict[str, float] = {}
for idx, class_name in enumerate([str(i) for i in range(10)]):
class_confidences_idxs = np.where(y_test_labels == idx)[0]
class_confidences = y_pred[class_confidences_idxs, idx]
confidence_dict[class_name] = float(np.mean(class_confidences))
return confidence_dict