task5

    xiaoxiao2022-06-24  180

    import torch import torch.nn as nn import torch.nn.functional as F import torchvision import torchvision.transforms as transforms import matplotlib.pyplot as plt import numpy as np regularization_loss = 0 for param in model.parameters(): regularization_loss += torch.sum(abs(param)) calssify_loss = criterion(pred,target) loss = classify_loss + lamda * regularization_loss optimizer.zero_grad() loss.backward() optimizer.step() optimizer = torch.optim.SGD(model.parameters(),lr=0.01,weight_decay=0.001) torch.manual_seed(1) # Sets the seed for generating random numbers.reproducible N_SAMPLES = 20 N_HIDDEN = 300 x = torch.unsqueeze(torch.linspace(-1, 1, N_SAMPLES), 1) print('x.size()',x.size()) y = x + 0.3*torch.normal(torch.zeros(N_SAMPLES, 1), torch.ones(N_SAMPLES, 1)) test_x = torch.unsqueeze(torch.linspace(-1, 1, N_SAMPLES), 1) test_y = test_x + 0.3*torch.normal(torch.zeros(N_SAMPLES, 1), torch.ones(N_SAMPLES, 1)) plt.scatter(x.data.numpy(), y.data.numpy(), c='magenta', s=50, alpha=0.5, label='train') plt.scatter(test_x.data.numpy(), test_y.data.numpy(), c='cyan', s=50, alpha=0.5, label='test') plt.legend(loc='upper left') plt.ylim((-2.5, 2.5)) plt.show() x.size() torch.Size([20, 1])

    最新回复(0)