-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathProbs.py
48 lines (35 loc) · 1.15 KB
/
Probs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
from typing import Callable
import torch
import torch.nn as nn
from cgtnnlib.NoiseGenerator import stable_noise
from cgtnnlib.training import add_noise_to_labels_regression
import cgtnnlib.datasets as ds
def do(
labels: torch.Tensor,
generate_sample: Callable[[], float]
):
t = add_noise_to_labels_regression(
labels,
generate_sample,
)
print('t =', t)
n = t.sub(t.min()).div(t.max() - t.min())
# Alternatively: Use argmax if you're going to use more classes later
# noisy_targets = torch.argmax(torch.stack([1 - noisy_probabilities, noisy_probabilities], dim=1), dim=1)
# noisy_targets = noisy_targets.long()
print(f"Noisy probabilities: {n}")
print(f"Original targets: {labels}")
return torch.distributions.Bernoulli(probs=n).sample()
if __name__ == '__main__':
ng = stable_noise(
dataset=ds.datasets[0],
factor=0.03,
alpha=1,
beta=1,
)
for i in range(0, 100):
baps = do(
torch.tensor([0., 0., 0., 1., 1., 1, 1., 1., 1., 0., 0., 1.]),
generate_sample=ng.next_sample
)
print(f"baps: {baps}")