Files
tensordex/ModelTraining/graphResults.py
T

63 lines
1.8 KiB
Python
Executable File

import tensorflow as tf
import pandas as pd
import numpy as np
import os
import seaborn as sn
import matplotlib.pyplot as plt
from sklearn.metrics import accuracy_score, confusion_matrix
def print_preds(reals, preds):
acc = accuracy_score(reals, predicts)
conf_mat = confusion_matrix(reals, predicts)
print("Testing accuracy score is ", acc)
print("Confusion Matrix", conf_mat)
df_cm = pd.DataFrame(conf_mat, index=[i for i in ["Block", "Meter", "Sign"]],
columns=[i for i in ["Block", "Meter", "Sign"]])
plt.figure(figsize=(10, 7))
sn.heatmap(df_cm, annot=True)
plt.show()
data = pd.read_csv("sub1_non_transfer.csv")
files_list = list(data["fname"])
reals = list(data["true_val"])
predicts = list(data["prediction"])
reals2 = []
wrong_files = []
for root, dirs, files in os.walk(".\\photos"):
for file in files:
if file in files_list:
x = data.loc[data["fname"] == file].values[0]
if (x[1] != x[2]):
print(x)
wrong_files.append((os.path.join(root, file), x[1]))
reals2.append(root.split("\\")[-1])
print_preds(reals, predicts)
print_preds(reals2, predicts)
import matplotlib.image as mpimg
from shutil import copyfile, rmtree
for file, pred in wrong_files:
print(file)
# img = mpimg.imread(file)
# # end
# # from now on you can use img as an image, but make sure you know what you are doing!
# imgplot = plt.imshow(img)
dest = file.split("\\")
dest[1] = "failed"
dest[-1] = pred + dest[-1]
dest = "\\".join(dest)
if not os.path.exists(os.path.dirname(dest)):
try:
os.makedirs(os.path.dirname(dest))
except Exception as e:
print(e)
copyfile(file, dest)
plt.show()