Esempio n. 1
0
def train_model():
    device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')

    # creates the dataloader for pytorch
    batch_size = 100
    train_loader, validation_loader, test_loader = fashion_mnist_dataloaders(
        batch_size, device, "2d")

    net = ConvForcedQuantization()
    net = net.to(device)
    num_epochs = 200

    net.train_model(train_loader, validation_loader, test_loader, num_epochs,
                    "Fashion-Conv-Forced-Quantization")
Esempio n. 2
0
def train_model(real_model_folder):
    device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')
    batch_size = 100

    real_model_param_path = os.path.join(model_path, real_model_folder,
                                         "PiReal.param.pickle")

    real_param = torch.load(real_model_param_path, map_location="cpu")
    logit_net = PiLogitSign(real_param, DiscreteWeights.TERNARY)
    logit_net = logit_net.to(device)
    train_loader, validation_loader, test_loader = fashion_mnist_dataloaders(
        batch_size, device, "flat")

    logit_net.train_model(train_loader, validation_loader, test_loader, 500,
                          "Fashion-Pi-Sign-500e-Ternary", True)
Esempio n. 3
0
def train_model():
    device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')

    # basic dataset holder
    # creates the dataloader for pytorch
    batch_size = 100
    train_loader, validation_loader, test_loader = fashion_mnist_dataloaders(
        batch_size, device, "flat")
    net = PiReal()
    net = net.to(device)

    num_epochs = 500
    # will save metrics and model to disk
    return net.train_model(train_loader,
                           validation_loader,
                           test_loader,
                           num_epochs,
                           model_name="Fashion-pi-real-500epoch")