Dateien nach „/“ hochladen
This commit is contained in:
parent
05ae5f4af4
commit
f129b77363
5 changed files with 427 additions and 0 deletions
102
noise_holes.py
Normal file
102
noise_holes.py
Normal file
|
@ -0,0 +1,102 @@
|
|||
import os
|
||||
|
||||
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3"
|
||||
|
||||
import argh
|
||||
|
||||
import numpy as np
|
||||
import torch
|
||||
|
||||
rand_seed: int = 21
|
||||
torch.manual_seed(rand_seed)
|
||||
torch.cuda.manual_seed(rand_seed)
|
||||
np.random.seed(rand_seed)
|
||||
|
||||
from get_the_data_uniform import get_the_data
|
||||
|
||||
|
||||
def main(
|
||||
dataset: str = "CIFAR10", # "CIFAR10", "FashionMNIST", "MNIST"
|
||||
only_print_network: bool = False,
|
||||
model_name: str = "Model_iter20_lr_1.0000e-03_1.0000e-02_1.0000e-03_.pt",
|
||||
) -> None:
|
||||
|
||||
torch_device: torch.device = (
|
||||
torch.device("cuda:0") if torch.cuda.is_available() else torch.device("cpu")
|
||||
)
|
||||
torch.set_default_dtype(torch.float32)
|
||||
|
||||
# Some parameters
|
||||
batch_size_test: int = 50 # 0
|
||||
|
||||
loss_mode: int = 0
|
||||
loss_coeffs_mse: float = 0.5
|
||||
loss_coeffs_kldiv: float = 1.0
|
||||
print(
|
||||
"loss_mode: ",
|
||||
loss_mode,
|
||||
"loss_coeffs_mse: ",
|
||||
loss_coeffs_mse,
|
||||
"loss_coeffs_kldiv: ",
|
||||
loss_coeffs_kldiv,
|
||||
)
|
||||
|
||||
if dataset == "MNIST" or dataset == "FashionMNIST":
|
||||
input_dim_x: int = 24
|
||||
input_dim_y: int = 24
|
||||
else:
|
||||
input_dim_x = 28
|
||||
input_dim_y = 28
|
||||
|
||||
test_dataloader, test_processing_chain = get_the_data(
|
||||
dataset,
|
||||
batch_size_test,
|
||||
torch_device,
|
||||
input_dim_x,
|
||||
input_dim_y,
|
||||
)
|
||||
|
||||
network = torch.load(model_name)
|
||||
network.to(device=torch_device)
|
||||
|
||||
print(network)
|
||||
|
||||
if only_print_network:
|
||||
exit()
|
||||
|
||||
# Switch the network into evalution mode
|
||||
network.eval()
|
||||
number_of_noise_steps = 20
|
||||
noise_scale = torch.arange(0, number_of_noise_steps + 1) / float(
|
||||
number_of_noise_steps
|
||||
)
|
||||
|
||||
results = torch.zeros_like(noise_scale)
|
||||
|
||||
with torch.no_grad():
|
||||
|
||||
for position in range(0, noise_scale.shape[0]):
|
||||
test_correct: int = 0
|
||||
test_number: int = 0
|
||||
eta: float = noise_scale[position]
|
||||
for image, target in test_dataloader:
|
||||
noise = torch.rand_like(image) > eta
|
||||
|
||||
image = image * noise
|
||||
image = image / (image.sum(dim=(1, 2, 3), keepdim=True) + 1e-20)
|
||||
output = network(test_processing_chain(image))
|
||||
|
||||
test_correct += (output.argmax(dim=1) == target).sum().cpu().numpy()
|
||||
test_number += target.shape[0]
|
||||
|
||||
perfomance_test_correct: float = 100.0 * test_correct / test_number
|
||||
results[position] = perfomance_test_correct
|
||||
|
||||
print(f"{eta:.2f}: {perfomance_test_correct:.2f}%")
|
||||
|
||||
np.save("noise_holes_results.npy", results.cpu().numpy())
|
||||
return
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
argh.dispatch_command(main)
|
107
noise_holes_w_noise.py
Normal file
107
noise_holes_w_noise.py
Normal file
|
@ -0,0 +1,107 @@
|
|||
import os
|
||||
|
||||
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3"
|
||||
|
||||
import argh
|
||||
|
||||
import numpy as np
|
||||
import torch
|
||||
|
||||
rand_seed: int = 21
|
||||
torch.manual_seed(rand_seed)
|
||||
torch.cuda.manual_seed(rand_seed)
|
||||
np.random.seed(rand_seed)
|
||||
|
||||
from get_the_data_uniform import get_the_data
|
||||
|
||||
|
||||
def main(
|
||||
dataset: str = "CIFAR10", # "CIFAR10", "FashionMNIST", "MNIST"
|
||||
only_print_network: bool = False,
|
||||
model_name: str = "Model_iter20_lr_1.0000e-03_1.0000e-02_1.0000e-03_.pt",
|
||||
) -> None:
|
||||
|
||||
torch_device: torch.device = (
|
||||
torch.device("cuda:0") if torch.cuda.is_available() else torch.device("cpu")
|
||||
)
|
||||
torch.set_default_dtype(torch.float32)
|
||||
|
||||
# Some parameters
|
||||
batch_size_test: int = 50 # 0
|
||||
|
||||
loss_mode: int = 0
|
||||
loss_coeffs_mse: float = 0.5
|
||||
loss_coeffs_kldiv: float = 1.0
|
||||
print(
|
||||
"loss_mode: ",
|
||||
loss_mode,
|
||||
"loss_coeffs_mse: ",
|
||||
loss_coeffs_mse,
|
||||
"loss_coeffs_kldiv: ",
|
||||
loss_coeffs_kldiv,
|
||||
)
|
||||
|
||||
if dataset == "MNIST" or dataset == "FashionMNIST":
|
||||
input_dim_x: int = 24
|
||||
input_dim_y: int = 24
|
||||
else:
|
||||
input_dim_x = 28
|
||||
input_dim_y = 28
|
||||
|
||||
test_dataloader, test_processing_chain = get_the_data(
|
||||
dataset,
|
||||
batch_size_test,
|
||||
torch_device,
|
||||
input_dim_x,
|
||||
input_dim_y,
|
||||
)
|
||||
|
||||
network = torch.load(model_name)
|
||||
network.to(device=torch_device)
|
||||
|
||||
print(network)
|
||||
|
||||
if only_print_network:
|
||||
exit()
|
||||
|
||||
# Switch the network into evalution mode
|
||||
network.eval()
|
||||
number_of_noise_steps = 20
|
||||
noise_scale = torch.arange(0, number_of_noise_steps + 1) / float(
|
||||
number_of_noise_steps
|
||||
)
|
||||
|
||||
results = torch.zeros_like(noise_scale)
|
||||
|
||||
with torch.no_grad():
|
||||
|
||||
for position in range(0, noise_scale.shape[0]):
|
||||
test_correct: int = 0
|
||||
test_number: int = 0
|
||||
eta: float = noise_scale[position]
|
||||
for image, target in test_dataloader:
|
||||
noise = torch.rand_like(image) > eta
|
||||
noise_2 = torch.rand_like(image)
|
||||
noise_2 = noise_2 / (noise_2.sum(dim=(1, 2, 3), keepdim=True) + 1e-20)
|
||||
|
||||
image = (
|
||||
image * noise.type(dtype=torch.float32)
|
||||
+ (1.0 - noise.type(dtype=torch.float32)) * noise_2
|
||||
)
|
||||
image = image / (image.sum(dim=(1, 2, 3), keepdim=True) + 1e-20)
|
||||
output = network(test_processing_chain(image))
|
||||
|
||||
test_correct += (output.argmax(dim=1) == target).sum().cpu().numpy()
|
||||
test_number += target.shape[0]
|
||||
|
||||
perfomance_test_correct: float = 100.0 * test_correct / test_number
|
||||
results[position] = perfomance_test_correct
|
||||
|
||||
print(f"{eta:.2f}: {perfomance_test_correct:.2f}%")
|
||||
|
||||
np.save("noise_holes_w_noise_results.npy", results.cpu().numpy())
|
||||
return
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
argh.dispatch_command(main)
|
110
noise_picture.py
Normal file
110
noise_picture.py
Normal file
|
@ -0,0 +1,110 @@
|
|||
import os
|
||||
|
||||
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3"
|
||||
|
||||
import argh
|
||||
|
||||
import numpy as np
|
||||
import torch
|
||||
|
||||
rand_seed: int = 21
|
||||
torch.manual_seed(rand_seed)
|
||||
torch.cuda.manual_seed(rand_seed)
|
||||
np.random.seed(rand_seed)
|
||||
|
||||
from get_the_data_picture import get_the_data
|
||||
|
||||
|
||||
def main(
|
||||
dataset: str = "CIFAR10", # "CIFAR10", "FashionMNIST", "MNIST"
|
||||
only_print_network: bool = False,
|
||||
model_name: str = "Model_iter20_lr_1.0000e-03_1.0000e-02_1.0000e-03_.pt",
|
||||
) -> None:
|
||||
|
||||
torch_device: torch.device = (
|
||||
torch.device("cuda:0") if torch.cuda.is_available() else torch.device("cpu")
|
||||
)
|
||||
torch.set_default_dtype(torch.float32)
|
||||
|
||||
# Some parameters
|
||||
batch_size_test: int = 50 # 0
|
||||
|
||||
loss_mode: int = 0
|
||||
loss_coeffs_mse: float = 0.5
|
||||
loss_coeffs_kldiv: float = 1.0
|
||||
print(
|
||||
"loss_mode: ",
|
||||
loss_mode,
|
||||
"loss_coeffs_mse: ",
|
||||
loss_coeffs_mse,
|
||||
"loss_coeffs_kldiv: ",
|
||||
loss_coeffs_kldiv,
|
||||
)
|
||||
|
||||
if dataset == "MNIST" or dataset == "FashionMNIST":
|
||||
input_dim_x: int = 24
|
||||
input_dim_y: int = 24
|
||||
else:
|
||||
input_dim_x = 28
|
||||
input_dim_y = 28
|
||||
|
||||
network = torch.load(model_name)
|
||||
network.to(device=torch_device)
|
||||
|
||||
print(network)
|
||||
|
||||
if only_print_network:
|
||||
exit()
|
||||
|
||||
# Switch the network into evalution mode
|
||||
network.eval()
|
||||
number_of_noise_steps = 20
|
||||
noise_scale = (
|
||||
0.5 * torch.arange(0, number_of_noise_steps + 1) / float(number_of_noise_steps)
|
||||
)
|
||||
|
||||
results = torch.zeros_like(noise_scale)
|
||||
|
||||
with torch.no_grad():
|
||||
|
||||
for position in range(0, noise_scale.shape[0]):
|
||||
|
||||
train_dataloader, test_dataloader, test_processing_chain = get_the_data(
|
||||
dataset,
|
||||
batch_size_test,
|
||||
batch_size_test,
|
||||
torch_device,
|
||||
input_dim_x,
|
||||
input_dim_y,
|
||||
)
|
||||
train_dataloader_iter = iter(train_dataloader)
|
||||
test_dataloader_iter = iter(test_dataloader)
|
||||
|
||||
test_correct: int = 0
|
||||
test_number: int = 0
|
||||
eta: float = noise_scale[position]
|
||||
max_iters = len(test_dataloader)
|
||||
|
||||
for _ in range(0, max_iters):
|
||||
(image, target) = next(test_dataloader_iter)
|
||||
(noise, _) = next(train_dataloader_iter)
|
||||
noise = noise / (noise.sum(dim=(1, 2, 3), keepdim=True) + 1e-20)
|
||||
image = image / (image.sum(dim=(1, 2, 3), keepdim=True) + 1e-20)
|
||||
output = network(
|
||||
test_processing_chain((1.0 - eta) * image + eta * noise)
|
||||
)
|
||||
|
||||
test_correct += (output.argmax(dim=1) == target).sum().cpu().numpy()
|
||||
test_number += target.shape[0]
|
||||
|
||||
perfomance_test_correct: float = 100.0 * test_correct / test_number
|
||||
results[position] = perfomance_test_correct
|
||||
|
||||
print(f"{eta:.2f}: {perfomance_test_correct:.2f}%")
|
||||
|
||||
np.save("noise_picture_results.npy", results.cpu().numpy())
|
||||
return
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
argh.dispatch_command(main)
|
5
noise_run.sh
Normal file
5
noise_run.sh
Normal file
|
@ -0,0 +1,5 @@
|
|||
/data_1/davrot/P3.12/bin/python3 noise_uniform.py
|
||||
/data_1/davrot/P3.12/bin/python3 noise_picture.py
|
||||
/data_1/davrot/P3.12/bin/python3 noise_holes.py
|
||||
/data_1/davrot/P3.12/bin/python3 noise_holes_w_noise.py
|
||||
|
103
noise_uniform.py
Normal file
103
noise_uniform.py
Normal file
|
@ -0,0 +1,103 @@
|
|||
import os
|
||||
|
||||
os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3"
|
||||
|
||||
import argh
|
||||
|
||||
import numpy as np
|
||||
import torch
|
||||
|
||||
rand_seed: int = 21
|
||||
torch.manual_seed(rand_seed)
|
||||
torch.cuda.manual_seed(rand_seed)
|
||||
np.random.seed(rand_seed)
|
||||
|
||||
from get_the_data_uniform import get_the_data
|
||||
|
||||
|
||||
def main(
|
||||
dataset: str = "CIFAR10", # "CIFAR10", "FashionMNIST", "MNIST"
|
||||
only_print_network: bool = False,
|
||||
model_name: str = "Model_iter20_lr_1.0000e-03_1.0000e-02_1.0000e-03_.pt",
|
||||
) -> None:
|
||||
|
||||
torch_device: torch.device = (
|
||||
torch.device("cuda:0") if torch.cuda.is_available() else torch.device("cpu")
|
||||
)
|
||||
torch.set_default_dtype(torch.float32)
|
||||
|
||||
# Some parameters
|
||||
batch_size_test: int = 50 # 0
|
||||
|
||||
loss_mode: int = 0
|
||||
loss_coeffs_mse: float = 0.5
|
||||
loss_coeffs_kldiv: float = 1.0
|
||||
print(
|
||||
"loss_mode: ",
|
||||
loss_mode,
|
||||
"loss_coeffs_mse: ",
|
||||
loss_coeffs_mse,
|
||||
"loss_coeffs_kldiv: ",
|
||||
loss_coeffs_kldiv,
|
||||
)
|
||||
|
||||
if dataset == "MNIST" or dataset == "FashionMNIST":
|
||||
input_dim_x: int = 24
|
||||
input_dim_y: int = 24
|
||||
else:
|
||||
input_dim_x = 28
|
||||
input_dim_y = 28
|
||||
|
||||
test_dataloader, test_processing_chain = get_the_data(
|
||||
dataset,
|
||||
batch_size_test,
|
||||
torch_device,
|
||||
input_dim_x,
|
||||
input_dim_y,
|
||||
)
|
||||
|
||||
network = torch.load(model_name)
|
||||
network.to(device=torch_device)
|
||||
|
||||
print(network)
|
||||
|
||||
if only_print_network:
|
||||
exit()
|
||||
|
||||
# Switch the network into evalution mode
|
||||
network.eval()
|
||||
number_of_noise_steps = 20
|
||||
noise_scale = torch.arange(0, number_of_noise_steps + 1) / float(
|
||||
number_of_noise_steps
|
||||
)
|
||||
|
||||
results = torch.zeros_like(noise_scale)
|
||||
|
||||
with torch.no_grad():
|
||||
|
||||
for position in range(0, noise_scale.shape[0]):
|
||||
test_correct: int = 0
|
||||
test_number: int = 0
|
||||
eta: float = noise_scale[position]
|
||||
for image, target in test_dataloader:
|
||||
noise = torch.rand_like(image)
|
||||
noise = noise / (noise.sum(dim=(1, 2, 3), keepdim=True) + 1e-20)
|
||||
image = image / (image.sum(dim=(1, 2, 3), keepdim=True) + 1e-20)
|
||||
output = network(
|
||||
test_processing_chain((1.0 - eta) * image + eta * noise)
|
||||
)
|
||||
|
||||
test_correct += (output.argmax(dim=1) == target).sum().cpu().numpy()
|
||||
test_number += target.shape[0]
|
||||
|
||||
perfomance_test_correct: float = 100.0 * test_correct / test_number
|
||||
results[position] = perfomance_test_correct
|
||||
|
||||
print(f"{eta:.2f}: {perfomance_test_correct:.2f}%")
|
||||
|
||||
np.save("noise_uniform_results.npy", results.cpu().numpy())
|
||||
return
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
argh.dispatch_command(main)
|
Loading…
Reference in a new issue