Spaces:
Sleeping
Sleeping
| from flask import Flask, request, render_template | |
| import os | |
| import json | |
| import numpy as np | |
| from Vit_concept import run_inference, model | |
| from GP import genetic_programming | |
| app = Flask(__name__) | |
| UPLOAD_FOLDER = 'uploads' | |
| os.makedirs(UPLOAD_FOLDER, exist_ok=True) | |
| def tolist_safe(obj): | |
| if isinstance(obj, np.ndarray): | |
| return obj.tolist() | |
| return obj | |
| def index(): | |
| return render_template('index.html') | |
| def upload(): | |
| if 'file' not in request.files: | |
| return "No file part" | |
| file = request.files['file'] | |
| if file.filename == '': | |
| return "No selected file" | |
| filepath = os.path.join(UPLOAD_FOLDER, file.filename) | |
| file.save(filepath) | |
| with open(filepath, 'r') as f: | |
| data = json.load(f) | |
| input_output_pairs = [] | |
| predicted_HLCs = [] | |
| for sample in data.get("train", []): | |
| input_grid = sample["input"] | |
| output_grid = sample["output"] | |
| concept_label, _ = run_inference(model, input_grid, output_grid) | |
| predicted_HLCs.append(concept_label) | |
| input_output_pairs.append((tolist_safe(input_grid), tolist_safe(output_grid))) | |
| predicted_HLCs = list(set(predicted_HLCs)) | |
| best_program, generations = genetic_programming( | |
| input_output_pairs=input_output_pairs, | |
| population_size=300, | |
| generations=500, | |
| mutation_rate=0.2, | |
| crossover_rate=0.7, | |
| max_depth=3, | |
| predicted_HLCs=predicted_HLCs | |
| ) | |
| test_pairs = [] | |
| predicted_test_outputs = [] | |
| for sample in data.get("test", []): | |
| test_input = tolist_safe(sample["input"]) | |
| test_output = tolist_safe(sample["output"]) | |
| test_pairs.append((test_input, test_output)) | |
| try: | |
| predicted = tolist_safe(best_program.evaluate(test_input)) | |
| except Exception as e: | |
| print("Error evaluating test input:", e) | |
| predicted = [["ERROR"]] | |
| predicted_test_outputs.append(predicted) | |
| return render_template("results.html", | |
| hlcs=predicted_HLCs, | |
| input_output_pairs=input_output_pairs, | |
| test_pairs=test_pairs, | |
| predicted_test_outputs=predicted_test_outputs, | |
| best_program=str(best_program)) | |
| if __name__ == '__main__': | |
| app.run(debug=True) |