def test_DML(): student_params = [4, 4, 4, 4, 4] student_model_1 = ResNet50(student_params, 1, 10) student_model_2 = ResNet18(student_params, 1, 10) student_cohort = (student_model_1, student_model_2) s_optimizer_1 = optim.SGD(student_model_1.parameters(), 0.01) s_optimizer_2 = optim.SGD(student_model_2.parameters(), 0.01) student_optimizers = (s_optimizer_1, s_optimizer_2) distiller = DML( student_cohort, train_loader, test_loader, student_optimizers, log=True, logdir=".", ) distiller.train_students(epochs=1, plot_losses=True, save_model=True, save_model_path="./student.pt") distiller.evaluate() distiller.get_parameters() del student_model_1, student_model_2, distiller, s_optimizer_1, s_optimizer_2
def test_NoisyTeacher(): teacher_params = [4, 4, 8, 4, 4] student_params = [4, 4, 4, 4, 4] teacher_model = ResNet50(teacher_params, 1, 10) student_model = ResNet18(student_params, 1, 10) t_optimizer = optim.SGD(teacher_model.parameters(), 0.01) s_optimizer = optim.SGD(student_model.parameters(), 0.01) experiment = NoisyTeacher( teacher_model, student_model, train_loader, test_loader, t_optimizer, s_optimizer, alpha=0.4, noise_variance=0.2, device="cpu", ) experiment.train_teacher(epochs=1, plot_losses=False, save_model=False) experiment.train_student(epochs=1, plot_losses=False, save_model=False) experiment.evaluate(teacher=False) experiment.get_parameters() del teacher_model, student_model, experiment, t_optimizer, s_optimizer
def test_RCO(): teacher_params = [4, 4, 8, 4, 4] student_params = [4, 4, 4, 4, 4] teacher_model = ResNet50(teacher_params, 1, 10) student_model = ResNet18(student_params, 1, 10) t_optimizer = optim.SGD(teacher_model.parameters(), 0.01) s_optimizer = optim.SGD(student_model.parameters(), 0.01) distiller = RCO( teacher_model, student_model, train_loader, test_loader, t_optimizer, s_optimizer, ) distiller.train_teacher(epochs=1, plot_losses=False, save_model=False) distiller.train_student(epochs=1, plot_losses=False, save_model=False) distiller.evaluate() distiller.get_parameters() del teacher_model, student_model, distiller, t_optimizer, s_optimizer
def test_dynamic_quantization(): model_params = [4, 4, 8, 4, 4] model = ResNet50(model_params, 1, 10, True) quantizer = Dynamic_Quantizer(model, test_loader, {torch.nn.Linear}) quantized_model = quantizer.quantize() quantizer.get_model_sizes() quantizer.get_performance_statistics()
def test_resnet(): params = [4, 4, 8, 8, 16] ResNet18(params) ResNet34(params) ResNet50(params) ResNet101(params) ResNet152(params)
def test_lottery_tickets(): teacher_params = [4, 4, 8, 4, 4] teacher_model = ResNet50(teacher_params, 1, 10, True) pruner = Lottery_Tickets_Pruner(teacher_model, train_loader, test_loader) pruner.prune(num_iterations=0, train_iterations=0, valid_freq=1, print_freq=1)
def test_BANN(): params = [4, 4, 4, 4, 4] model = ResNet50(params, 1, 10) optimizer = optim.SGD(model.parameters(), 0.01) distiller = BANN(model, train_loader, test_loader, optimizer, num_gen=2) distiller.train_student(epochs=0, plot_losses=False, save_model=False)
def test_DML(): student_params = [4, 4, 4, 4, 4] student_model_1 = ResNet50(student_params, 1, 10) student_model_2 = ResNet18(student_params, 1, 10) student_cohort = (student_model_1, student_model_2) s_optimizer_1 = optim.SGD(student_model_1.parameters(), 0.01) s_optimizer_2 = optim.SGD(student_model_2.parameters(), 0.01) student_optimizers = (s_optimizer_1, s_optimizer_2) distiller = DML(student_cohort, train_loader, test_loader, student_optimizers) distiller.train_students(epochs=1, plot_losses=False, save_model=False) distiller.evaluate() distiller.get_parameters()
def test_mean_teacher(): teacher_params = [4, 4, 8, 4, 4] student_params = [4, 4, 4, 4, 4] teacher_model = ResNet50(teacher_params, 1, 10, mean=True) student_model = ResNet18(student_params, 1, 10, mean=True) t_optimizer = optim.SGD(teacher_model.parameters(), 0.01) s_optimizer = optim.SGD(student_model.parameters(), 0.01) mt = MeanTeacher( teacher_model, student_model, train_loader, test_loader, t_optimizer, s_optimizer, ) mt.train_teacher(epochs=1, plot_losses=False, save_model=False) mt.train_student(epochs=1, plot_losses=False, save_model=False) mt.evaluate() mt.get_parameters()
def test_attention(): teacher_params = [4, 4, 8, 4, 4] student_params = [4, 4, 4, 4, 4] teacher_model = ResNet50(teacher_params, 1, 10, True) student_model = ResNet18(student_params, 1, 10, True) t_optimizer = optim.SGD(teacher_model.parameters(), 0.01) s_optimizer = optim.SGD(student_model.parameters(), 0.01) att = Attention( teacher_model, student_model, train_loader, test_loader, t_optimizer, s_optimizer, ) att.train_teacher(epochs=1, plot_losses=False, save_model=False) att.train_student(epochs=1, plot_losses=False, save_model=False) att.evaluate(teacher=False) att.get_parameters()