| |
| |
|
|
| import gradio as gr |
| import torch |
| import torch.nn as nn |
|
|
| |
| |
| |
| class HybridModel(nn.Module): |
| def __init__(self, input_size=1, hidden_size=64, num_layers=2): |
| super(HybridModel, self).__init__() |
| |
| self.lstm = nn.LSTM(input_size, hidden_size, num_layers, batch_first=True) |
| |
| encoder_layer = nn.TransformerEncoderLayer(d_model=hidden_size, nhead=4) |
| self.transformer = nn.TransformerEncoder(encoder_layer, num_layers=2) |
| |
| self.fc = nn.Linear(hidden_size, 1) |
|
|
| def forward(self, x): |
| lstm_out, _ = self.lstm(x) |
| trans_out = self.transformer(lstm_out) |
| out = self.fc(trans_out[:, -1, :]) |
| return out |
|
|
| |
| model = HybridModel() |
|
|
| |
| |
| |
| def predict(input_value): |
| try: |
| val = float(input_value) |
| x = torch.tensor([[[val]]], dtype=torch.float32) |
| with torch.no_grad(): |
| pred = model(x).item() |
| return f"🔮 Prediction: {pred:.2f}" |
| except: |
| return "❌ Invalid input! Please enter a number like 2.1" |
|
|
| |
| |
| |
| with gr.Blocks(theme=gr.themes.Monochrome()) as demo: |
| gr.Markdown("## 🟣 Real-Time Hybrid AI Prediction System\nবাংলায় সহজ UI, Dark Mode") |
|
|
| with gr.Row(): |
| input_box = gr.Textbox(label="Live Data Input (e.g. 2.1)", placeholder="Type number ➕ ⬜ ➖ ▫️ ➕ ⬜ ➖") |
| output_box = gr.Textbox(label="Prediction Result", interactive=False) |
|
|
| input_box.change(fn=predict, inputs=input_box, outputs=output_box) |
|
|
| |
| csv_file = gr.File(label="Upload CSV for Initial Learning", file_types=[".csv"]) |
|
|
| demo.launch() |
|
|