neuro-lab6/validate.py

60 lines
1.4 KiB
Python
Raw Permalink Normal View History

2025-11-29 13:57:50 +02:00
from test2 import *
import tensorflow as tf
from sklearn.metrics import f1_score, precision_score, recall_score, accuracy_score
from matplotlib import pyplot as plt
import numpy as np
td = tf.keras.utils.image_dataset_from_directory(
"../dataset-ultimate-2",
image_size = (300, 300),
labels = "inferred",
label_mode = "binary",
batch_size = 96)
m.load_weights("model3.keras")
p = [i >= 0 for i in m.predict(td)]
r = np.concatenate([y for x, y in td])
#print(r)
#exit()
def __prep_conf_matr(data):
output_matrix = np.zeros([2, 2])
for p, r in zip(*data):
#print(p, r)
output_matrix[int(p)][int(r[0])] += 1
return output_matrix
def __plot_conf_matr(data):
matr = __prep_conf_matr(data)
_, ax = plt.subplots()
ax.matshow(matr, cmap = plt.cm.Blues)
for i, x in enumerate(matr):
for j, y in enumerate(x):
ax.text(i,
j,
str(round(y)),
va = "center",
ha = "center")
plt.show()
#p = mod.predict(ds)
#r = np.concatenate([y for x, y in ds])
print(f"Accuracy : {accuracy_score(p, r)}")
print(f"Precision : {precision_score(p, r, average = 'binary')}")
print(f"Recall : {recall_score(p, r, average = 'binary')}")
print(f"F1 Score : {f1_score(p, r, average = 'binary')}")
__plot_conf_matr([p, r])