comparaison script by chatgpt
This commit is contained in:
parent
bc67103752
commit
29ddec60f7
38
go_ia/compare_predictions.py
Normal file
38
go_ia/compare_predictions.py
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
import argparse
|
||||||
|
|
||||||
|
def compare_files(file1_path, file2_path, epsilon=1e-2):
|
||||||
|
"""
|
||||||
|
By ChatGPT
|
||||||
|
Compare les lignes de deux fichiers contenant des valeurs flottantes,
|
||||||
|
à epsilon près, et calcule l'accuracy.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
file1_path (str): chemin du premier fichier.
|
||||||
|
file2_path (str): chemin du second fichier.
|
||||||
|
epsilon (float): tolérance pour comparer les valeurs.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
float: accuracy (proportion de lignes équivalentes à epsilon près).
|
||||||
|
"""
|
||||||
|
with open(file1_path, 'r') as f1, open(file2_path, 'r') as f2:
|
||||||
|
lines1 = [float(line.strip()) for line in f1 if line.strip()]
|
||||||
|
lines2 = [float(line.strip()) for line in f2 if line.strip()]
|
||||||
|
|
||||||
|
if len(lines1) != len(lines2):
|
||||||
|
raise ValueError(f"Les fichiers n'ont pas le même nombre de lignes : {len(lines1)} != {len(lines2)}")
|
||||||
|
|
||||||
|
total = len(lines1)
|
||||||
|
correct = sum(abs(a - b) <= epsilon for a, b in zip(lines1, lines2))
|
||||||
|
|
||||||
|
accuracy = correct / total
|
||||||
|
print(f"Accuracy: {accuracy:.4f} ({correct}/{total} lignes correctes à epsilon={epsilon})")
|
||||||
|
return accuracy
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
parser = argparse.ArgumentParser(description="Comparer deux fichiers ligne par ligne à epsilon près.")
|
||||||
|
parser.add_argument("file1", help="Chemin du premier fichier (résultat modèle)")
|
||||||
|
parser.add_argument("file2", help="Chemin du second fichier (résultat attendu)")
|
||||||
|
parser.add_argument("--epsilon", type=float, default=1e-1, help="Tolérance pour la comparaison (défaut: 1e-2)")
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
compare_files(args.file1, args.file2, epsilon=args.epsilon)
|
Loading…
x
Reference in New Issue
Block a user