Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import math | |
| import numpy as np | |
| from joblib import load | |
| # Load model once | |
| model = load('model3.joblib') | |
| def model2(data): | |
| input_array = np.array([data]).reshape(1, -1) | |
| prediction = model.predict(input_array)[0] | |
| return prediction | |
| def process_input(num_str): | |
| if len(num_str) != 6 or not num_str.isdigit(): | |
| return "Input must be a 6-digit number." | |
| # Create 2-digit windows | |
| windows = [int(num_str[i:i+2]) for i in range(len(num_str)-1)] | |
| # Divide by 3π | |
| divisor = 3 * math.pi | |
| normalized = [x / divisor for x in windows] | |
| # Get predictions | |
| preds = [model2(norm) for norm in normalized] | |
| # Compute errors | |
| errors = [preds[i] - windows[i+1] for i in range(4)] | |
| # Combined error and average | |
| combined_error = sum(errors) | |
| avg_error = combined_error / len(errors) | |
| # Find 2 nearest to avg_error | |
| distances = [abs(e - avg_error) for e in errors] | |
| nearest_indices = sorted(range(len(distances)), key=lambda i: distances[i])[:2] | |
| nearest_values = [errors[i] for i in nearest_indices] | |
| # Mean of nearest + target | |
| all_three = nearest_values + [avg_error] | |
| mean_val = np.mean(all_three) | |
| # Adjust pred4 with all errors | |
| pred4 = preds[3] | |
| ads_list = [(pred4 + err if avg_error > 0 else pred4 - err) for err in errors] | |
| # Multiply by tau | |
| ads2 = np.array(ads_list, dtype=np.float32) * math.tau | |
| # Extract digit before decimal | |
| digit_before_decimal = [int(str(int(x))[-1]) for x in ads2] | |
| return digit_before_decimal | |
| # Gradio Interface | |
| iface = gr.Interface( | |
| fn=process_input, | |
| inputs=gr.Textbox(label="Enter a 6-digit number"), | |
| outputs=gr.Textbox(label="Digit Before Decimal from Adjusted List") | |
| ) | |
| iface.launch() | |