Views
No views yet

1from huggingface_hub import hf_hub_download
2import torch, torch.nn.functional as F
3import numpy as np
4
5# Download model weights
6repo_id = "JonusNattapong/transformer-classifier-gc1h"
7filename = "transformer_cls_gc1h.pt"
8state_dict_path = hf_hub_download(repo_id=repo_id, filename=filename)
9
10# Define model (must match training config)
11model_inf = TimeSeriesTransformerCLS(
12 n_features=n_features,
13 n_classes=3,
14 d_model=128,
15 n_heads=4,
16 n_layers=4,
17 d_ff=256,
18 dropout=0.1
19).to(device)
20
21# Load weights
22model_inf.load_state_dict(torch.load(state_dict_path, map_location=device))
23model_inf.eval()
24
25# Example Inference
26example_input = scaled.iloc[-WINDOW:].values.astype(np.float32) # shape [T, F]
27example_input_tensor = torch.tensor(example_input).unsqueeze(0).to(device)
28
29with torch.no_grad():
30 logits = model_inf(example_input_tensor)
31 probabilities = F.softmax(logits, dim=1).squeeze(0).cpu().numpy()
32 predicted_class = int(torch.argmax(logits, dim=1).item())
33
34print("Probabilities:", probabilities)
35print("Predicted Class:", predicted_class) # 0=Down, 1=Flat, 2=Up