Exemplo n.º 1
0
def end_to_end():
  s=1
  input_shape = (128,128,3)  

  # set up training data
  train_trans = TrainDataAugmentation(s, input_shape)
  train_aug = train_trans.augment()

  train_data = datasets.ImageFolder('unlabelled', transform=SimCLRDataTransform(train_aug))

  # set up tuning data
  tune_trans = TuneDataAugmentation(s, input_shape)
  tune_aug = tune_trans.augment()

  tune_data = datasets.ImageFolder('labelled', transform=TuneDataTransform(tune_aug))

#  # set up val data
#  val_data = tv.datasets.CIFAR10(
#    root='Data', train=False, download=True, 
#    transform=TuneDataTransform(tune_aug)
#  )
  val_data = None
  
  # create the base model
  model = ResNetSimCLR(in_channels=3, n_classes=10, mlp_layers=2)
  simclr = SimCLR(model)
  print(f'Our model has {simclr.trainer.num_params:,} parameters')

  results = simclr.full_model_maker(
    train_data, tune_data, val_data, n_cycles=1, train_epochs=5, tune_epochs=2,
    train_path='chkpt/train.tar', tune_path='chkpt/tune.tar'
  )

  return results
Exemplo n.º 2
0
def validateCIFAR(modelpath):
  s = 1
  input_shape = (128,128,3)  
  
  # get transform pipeline
  transform = TuneDataAugmentation(s, input_shape)
  augment = transform.augment()
  
  # load data
  testdata = tv.datasets.CIFAR10(root='TestData',
                                  train=False,download=False,transform=SimCLRDataTransform(augment))
  
  simclr = Validate()
  testloader = simclr.load_data(testdata)
  accuracy =  simclr.validate_labels(modelpath,testloader)
  return accuracy
Exemplo n.º 3
0
def trainCIFAR():
  s = 1
  input_shape = (128,128,3)
  temperature = .5
  
  # get transform pipeline
  transform = TrainDataAugmentation(s, input_shape)
  augment = transform.augment()
  
  # load data
  trainset = datasets.ImageFolder('unlabelled', transform=SimCLRDataTransform(augment))
  
  simclr = Train()
  data = simclr.load_data(trainset)
  model,losses = simclr.train(data, temperature,n_epochs=1,ckpt_path='face_recognition.tar')
  return model, losses
def finish_the_job():
    s = 1
    input_shape = (128, 128, 3)

    # set up training data
    train_trans = TrainDataAugmentation(s, input_shape)
    train_aug = train_trans.augment()

    train_data = tv.datasets.ImageFolder(
        root='Data/unlabeled', transform=SimCLRDataTransform(train_aug))

    # set up tuning and validation data
    tune_trans = TuneDataAugmentation(s, input_shape)
    tune_aug = tune_trans.augment()

    tune_val_data = tv.datasets.ImageFolder(
        root='Data/supervised', transform=TuneDataTransform(tune_aug))

    tune_data, val_data = random_split(tune_val_data, [7112, 16595])

    saved = torch.load('chkpt/race_train.tar70')
    trained_model = model = ResNetSimCLR(in_channels=3,
                                         n_classes=5,
                                         mlp_layers=2,
                                         blocks_layers=[3, 4, 6, 3])
    trained_model.load_state_dict(saved['model_state_dict'])

    simclr = SimCLR(trained_model)

    model = simclr.trainer.return_model()
    simclr.make_tuner(model)

    tune_epochs = 50
    tune_path = 'chkpt/race_tune.tar'

    model, tune_losses = simclr.tune(tune_data, tune_epochs, tune_path)

    simclr.make_validator(simclr.tuner.model)
    acc, actual, predicted = simclr.validate(val_data)

    results = (model, tune_losses, acc, actual, predicted)

    return results
Exemplo n.º 5
0
def trainCIFAR():
  s = 1
  input_shape = (96,96,3)
  temperature = .5
  
  # get transform pipeline
  transform = TrainDataAugmentation(s, input_shape)
  augment = transform.augment()
  
  # load data
  trainset = tv.datasets.CIFAR10(
    root='Data', train=True, download=False, 
    transform=SimCLRDataTransform(augment)
  )
  
  simclr = Train()
  data = simclr.load_data(trainset)
  model,losses = simclr.train(data, temperature,n_epochs=1,ckpt_path='CIFAR10.tar')
  return model, losses
def train_race_fr():
    s = 1
    input_shape = (128, 128, 3)

    # set up training data
    train_trans = TrainDataAugmentation(s, input_shape)
    train_aug = train_trans.augment()

    train_data = tv.datasets.ImageFolder(
        root='Data/unlabeled', transform=SimCLRDataTransform(train_aug))

    # set up tuning and validation data
    tune_trans = TuneDataAugmentation(s, input_shape)
    tune_aug = tune_trans.augment()

    tune_val_data = tv.datasets.ImageFolder(
        root='Data/supervised', transform=TuneDataTransform(tune_aug))

    tune_data, val_data = random_split(tune_val_data, [7112, 16595])

    # create the base model
    model = ResNetSimCLR(in_channels=3,
                         n_classes=5,
                         mlp_layers=2,
                         blocks_layers=[3, 4, 6, 3])

    simclr = SimCLR(model)
    print(f'Our model has {simclr.trainer.num_params:,} parameters')

    results = simclr.full_model_maker(train_data,
                                      tune_data,
                                      val_data,
                                      n_cycles=1,
                                      train_epochs=71,
                                      tune_epochs=31,
                                      train_path='chkpt/race_train.tar',
                                      tune_path='chkpt/race_tune.tar')

    return results