Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if cuda and th.cuda.device_count():
th.cuda.manual_seed(seed)
device = th.device('cuda')
# Create Datasets
train_dataset = l2l.vision.datasets.MiniImagenet(root='./data', mode='train')
valid_dataset = l2l.vision.datasets.MiniImagenet(root='./data', mode='validation')
test_dataset = l2l.vision.datasets.MiniImagenet(root='./data', mode='test')
train_dataset = l2l.data.MetaDataset(train_dataset)
valid_dataset = l2l.data.MetaDataset(valid_dataset)
test_dataset = l2l.data.MetaDataset(test_dataset)
train_transforms = [
l2l.data.transforms.NWays(train_dataset, ways),
l2l.data.transforms.KShots(train_dataset, 2*shots),
l2l.data.transforms.LoadData(train_dataset),
l2l.data.transforms.RemapLabels(train_dataset),
l2l.data.transforms.ConsecutiveLabels(train_dataset),
]
train_tasks = l2l.data.TaskDataset(train_dataset,
task_transforms=train_transforms,
num_tasks=20000)
valid_transforms = [
l2l.data.transforms.NWays(valid_dataset, ways),
l2l.data.transforms.KShots(valid_dataset, 2*shots),
l2l.data.transforms.LoadData(valid_dataset),
l2l.data.transforms.ConsecutiveLabels(train_dataset),
l2l.data.transforms.RemapLabels(valid_dataset),
]
valid_tasks = l2l.data.TaskDataset(valid_dataset,
task_transforms=valid_transforms,
valid_dataset = l2l.data.MetaDataset(valid_dataset)
test_dataset = l2l.data.MetaDataset(test_dataset)
train_transforms = [
l2l.data.transforms.NWays(train_dataset, ways),
l2l.data.transforms.KShots(train_dataset, 2*shots),
l2l.data.transforms.LoadData(train_dataset),
l2l.data.transforms.RemapLabels(train_dataset),
l2l.data.transforms.ConsecutiveLabels(train_dataset),
]
train_tasks = l2l.data.TaskDataset(train_dataset,
task_transforms=train_transforms,
num_tasks=20000)
valid_transforms = [
l2l.data.transforms.NWays(valid_dataset, ways),
l2l.data.transforms.KShots(valid_dataset, 2*shots),
l2l.data.transforms.LoadData(valid_dataset),
l2l.data.transforms.ConsecutiveLabels(train_dataset),
l2l.data.transforms.RemapLabels(valid_dataset),
]
valid_tasks = l2l.data.TaskDataset(valid_dataset,
task_transforms=valid_transforms,
num_tasks=600)
test_transforms = [
l2l.data.transforms.NWays(test_dataset, ways),
l2l.data.transforms.KShots(test_dataset, 2*shots),
l2l.data.transforms.LoadData(test_dataset),
l2l.data.transforms.RemapLabels(test_dataset),
l2l.data.transforms.ConsecutiveLabels(train_dataset),
]
th.cuda.manual_seed(seed)
device = th.device('cuda')
# Create Datasets
train_dataset = l2l.vision.datasets.MiniImagenet(root='./data', mode='train')
valid_dataset = l2l.vision.datasets.MiniImagenet(root='./data', mode='validation')
test_dataset = l2l.vision.datasets.MiniImagenet(root='./data', mode='test')
train_dataset = l2l.data.MetaDataset(train_dataset)
valid_dataset = l2l.data.MetaDataset(valid_dataset)
test_dataset = l2l.data.MetaDataset(test_dataset)
train_transforms = [
l2l.data.transforms.NWays(train_dataset, ways),
l2l.data.transforms.KShots(train_dataset, 2*shots),
l2l.data.transforms.LoadData(train_dataset),
l2l.data.transforms.RemapLabels(train_dataset),
l2l.data.transforms.ConsecutiveLabels(train_dataset),
]
train_tasks = l2l.data.TaskDataset(train_dataset,
task_transforms=train_transforms,
num_tasks=20000)
valid_transforms = [
l2l.data.transforms.NWays(valid_dataset, ways),
l2l.data.transforms.KShots(valid_dataset, 2*shots),
l2l.data.transforms.LoadData(valid_dataset),
l2l.data.transforms.ConsecutiveLabels(train_dataset),
l2l.data.transforms.RemapLabels(valid_dataset),
]
valid_tasks = l2l.data.TaskDataset(valid_dataset,
task_transforms=valid_transforms,
num_tasks=600)
transformations = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.1307,), (0.3081,)),
lambda x: x.view(1, 28, 28),
])
mnist_train = l2l.data.MetaDataset(MNIST(download_location,
train=True,
download=True,
transform=transformations))
train_tasks = l2l.data.TaskDataset(mnist_train,
task_transforms=[
l2l.data.transforms.NWays(mnist_train, ways),
l2l.data.transforms.KShots(mnist_train, 2*shots),
l2l.data.transforms.LoadData(mnist_train),
l2l.data.transforms.RemapLabels(mnist_train),
l2l.data.transforms.ConsecutiveLabels(mnist_train),
],
num_tasks=1000)
model = Net(ways)
model.to(device)
meta_model = l2l.algorithms.MAML(model, lr=maml_lr)
opt = optim.Adam(meta_model.parameters(), lr=lr)
loss_func = nn.NLLLoss(reduction='mean')
for iteration in range(iterations):
iteration_error = 0.0
iteration_acc = 0.0
for _ in range(tps):
learner = meta_model.clone()
omniglot = l2l.vision.datasets.FullOmniglot(root='./data',
transform=transforms.Compose([
transforms.Resize(28, interpolation=LANCZOS),
transforms.ToTensor(),
lambda x: 1.0 - x,
]),
download=True)
dataset = l2l.data.MetaDataset(omniglot)
classes = list(range(1623))
random.shuffle(classes)
train_transforms = [
l2l.data.transforms.FilterLabels(dataset, classes[:1100]),
l2l.data.transforms.NWays(dataset, ways),
l2l.data.transforms.KShots(dataset, 2*shots),
l2l.data.transforms.LoadData(dataset),
l2l.data.transforms.RemapLabels(dataset),
l2l.data.transforms.ConsecutiveLabels(dataset),
l2l.vision.transforms.RandomClassRotation(dataset, [0.0, 90.0, 180.0, 270.0])
]
train_tasks = l2l.data.TaskDataset(dataset,
task_transforms=train_transforms,
num_tasks=20000)
valid_transforms = [
l2l.data.transforms.FilterLabels(dataset, classes[1100:1200]),
l2l.data.transforms.NWays(dataset, ways),
l2l.data.transforms.KShots(dataset, 2*shots),
l2l.data.transforms.LoadData(dataset),
l2l.data.transforms.RemapLabels(dataset),
l2l.data.transforms.ConsecutiveLabels(dataset),
l2l.vision.transforms.RandomClassRotation(dataset, [0.0, 90.0, 180.0, 270.0])
def main(lr=0.005, maml_lr=0.01, iterations=1000, ways=5, shots=1, tps=32, fas=5, device=torch.device("cpu"),
download_location='./data'):
transformations = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.1307,), (0.3081,)),
lambda x: x.view(1, 28, 28),
])
mnist_train = l2l.data.MetaDataset(MNIST(download_location,
train=True,
download=True,
transform=transformations))
train_tasks = l2l.data.TaskDataset(mnist_train,
task_transforms=[
l2l.data.transforms.NWays(mnist_train, ways),
l2l.data.transforms.KShots(mnist_train, 2*shots),
l2l.data.transforms.LoadData(mnist_train),
l2l.data.transforms.RemapLabels(mnist_train),
l2l.data.transforms.ConsecutiveLabels(mnist_train),
],
num_tasks=1000)
model = Net(ways)
model.to(device)
meta_model = l2l.algorithms.MAML(model, lr=maml_lr)
opt = optim.Adam(meta_model.parameters(), lr=lr)
loss_func = nn.NLLLoss(reduction='mean')
for iteration in range(iterations):
iteration_error = 0.0
iteration_acc = 0.0
transform=transforms.Compose([
transforms.Resize(28, interpolation=LANCZOS),
transforms.ToTensor(),
lambda x: 1.0 - x,
]),
download=True)
dataset = l2l.data.MetaDataset(omniglot)
classes = list(range(1623))
random.shuffle(classes)
train_transforms = [
l2l.data.transforms.FilterLabels(dataset, classes[:1100]),
l2l.data.transforms.NWays(dataset, ways),
l2l.data.transforms.KShots(dataset, 2*shots),
l2l.data.transforms.LoadData(dataset),
l2l.data.transforms.RemapLabels(dataset),
l2l.data.transforms.ConsecutiveLabels(dataset),
l2l.vision.transforms.RandomClassRotation(dataset, [0.0, 90.0, 180.0, 270.0])
]
train_tasks = l2l.data.TaskDataset(dataset,
task_transforms=train_transforms,
num_tasks=20000)
valid_transforms = [
l2l.data.transforms.FilterLabels(dataset, classes[1100:1200]),
l2l.data.transforms.NWays(dataset, ways),
l2l.data.transforms.KShots(dataset, 2*shots),
l2l.data.transforms.LoadData(dataset),
l2l.data.transforms.RemapLabels(dataset),
l2l.data.transforms.ConsecutiveLabels(dataset),
l2l.vision.transforms.RandomClassRotation(dataset, [0.0, 90.0, 180.0, 270.0])
]
train_transforms = [
l2l.data.transforms.FilterLabels(dataset, classes[:1100]),
l2l.data.transforms.NWays(dataset, ways),
l2l.data.transforms.KShots(dataset, 2*shots),
l2l.data.transforms.LoadData(dataset),
l2l.data.transforms.RemapLabels(dataset),
l2l.data.transforms.ConsecutiveLabels(dataset),
l2l.vision.transforms.RandomClassRotation(dataset, [0.0, 90.0, 180.0, 270.0])
]
train_tasks = l2l.data.TaskDataset(dataset,
task_transforms=train_transforms,
num_tasks=20000)
valid_transforms = [
l2l.data.transforms.FilterLabels(dataset, classes[1100:1200]),
l2l.data.transforms.NWays(dataset, ways),
l2l.data.transforms.KShots(dataset, 2*shots),
l2l.data.transforms.LoadData(dataset),
l2l.data.transforms.RemapLabels(dataset),
l2l.data.transforms.ConsecutiveLabels(dataset),
l2l.vision.transforms.RandomClassRotation(dataset, [0.0, 90.0, 180.0, 270.0])
]
valid_tasks = l2l.data.TaskDataset(dataset,
task_transforms=valid_transforms,
num_tasks=1024)
test_transforms = [
l2l.data.transforms.FilterLabels(dataset, classes[1200:]),
l2l.data.transforms.NWays(dataset, ways),
l2l.data.transforms.KShots(dataset, 2*shots),
l2l.data.transforms.LoadData(dataset),
l2l.data.transforms.RemapLabels(dataset),
transforms.Resize(28, interpolation=LANCZOS),
transforms.ToTensor(),
lambda x: 1.0 - x,
]),
download=True)
dataset = l2l.data.MetaDataset(omniglot)
classes = list(range(1623))
random.shuffle(classes)
train_transforms = [
l2l.data.transforms.FilterLabels(dataset, classes[:1100]),
l2l.data.transforms.NWays(dataset, ways),
l2l.data.transforms.KShots(dataset, 2*shots),
l2l.data.transforms.LoadData(dataset),
l2l.data.transforms.RemapLabels(dataset),
l2l.data.transforms.ConsecutiveLabels(dataset),
l2l.vision.transforms.RandomClassRotation(dataset, [0.0, 90.0, 180.0, 270.0])
]
train_tasks = l2l.data.TaskDataset(dataset,
task_transforms=train_transforms,
num_tasks=20000)
valid_transforms = [
l2l.data.transforms.FilterLabels(dataset, classes[1100:1200]),
l2l.data.transforms.NWays(dataset, ways),
l2l.data.transforms.KShots(dataset, 2*shots),
l2l.data.transforms.LoadData(dataset),
l2l.data.transforms.RemapLabels(dataset),
l2l.data.transforms.ConsecutiveLabels(dataset),
l2l.vision.transforms.RandomClassRotation(dataset, [0.0, 90.0, 180.0, 270.0])
]
valid_tasks = l2l.data.TaskDataset(dataset,