File size: 597 Bytes
6634ea5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
mport torch
import numpy as np

def ensure_tensor(img, transform):
    return transform(img).unsqueeze(0)  # [1, C, H, W]

def mc_dropout_predictions(model, input_tensor, n_samples=8):
    """تقدير عدم اليقين بالـ Dropout"""
    model.train()
    preds = []
    with torch.no_grad():
        for _ in range(n_samples):
            out = model(input_tensor)
            probs = torch.softmax(out, dim=1).cpu().numpy()
            preds.append(probs)
    model.eval()
    preds = np.vstack(preds)
    mean = preds.mean(axis=0)[0]
    std = preds.std(axis=0)[0]
    return mean, std