Views
No views yet
| Gesture | Accuracy |
|---|---|
| rest | 100% |
| wave_in | 100% |
| fist | 98% |
| pinch | 97% |
| open_hand | 92% |
| wave_out | 85% |
| Average | 95% |
| File | Description |
|---|---|
models/best_model_v4.pt | Trained PyTorch model weights |
models/norm_mean.npy | Normalization mean (required at inference) |
models/norm_std.npy | Normalization std (required at inference) |
results/confusion_matrix_v4.png | Confusion matrix |
results/training_curves_v4.png | Training loss & accuracy curves |
code/train.py | Full training pipeline |
code/realtime.py | Real-time inference with Myo |
code/guided_test.py | Guided accuracy evaluation |
1import torch
2import numpy as np
3
4# Load model
5model = EMG_CNN_LSTM(n_channels=8, n_classes=6)
6model.load_state_dict(torch.load('models/best_model_v4.pt'))
7model.eval()
8
9# Load normalization stats
10norm_mean = np.load('models/norm_mean.npy')
11norm_std = np.load('models/norm_std.npy')
12
13# Normalize input (150 samples × 8 channels)
14window = (window - norm_mean) / norm_std
15
16# Predict
17x = torch.tensor(window.T.copy(), dtype=torch.float32).unsqueeze(0)
18with torch.no_grad():
19 probs = torch.softmax(model(x), dim=1)
20 pred = probs.argmax().item()