Exemple #1
0
                                           batch_size=args.batch_size,
                                           shuffle=True)
valid_loader = torch.utils.data.DataLoader(NACCDataset(val_dir, "valid"),
                                           batch_size=args.batch_size,
                                           shuffle=False)

# to make the model
#model = make_model(h=args.head_number, d_model=args.d_model, d_ff=args.d_ff, dropout=args.dropout, max_len=args.max_len, record_dim=args.record_dim, d_ff_hidden=args.d_ff_hidden, N=args.encoder_num, de_factor=args.de_factor)
model = LinearRegression(args.feature_dim, args.output_dim)

# put model into the correspoinding device
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model.to(device)

# define optimizer
optimizer = optim.Adam(model.parameters(),
                       lr=args.lr,
                       betas=(args.beta1, args.beta2),
                       eps=args.epsilon)

# define scheduler
scheduler = lr_scheduler.ReduceLROnPlateau(optimizer,
                                           mode="min",
                                           factor=0.5,
                                           patience=2,
                                           verbose=True)

# define the criterion
# How to get weights:
# e.g., weight of NORM = (# all training samples) / (# normal samples)
training_loss_weights = [2.488, 43.346, 3.295, 3.683]
Exemple #2
0
y = torch.unsqueeze(torch.tensor([7.7, 7, 6.5, 6, 5.2, 5, 4.3, 3.8], dtype=torch.float ), 1)

# * Vẽ đồ thị điểm
# plt.scatter(x, y)
# plt.show()

# ! Linear regression
# * Khởi tạo model linear regression thông báo số chiều của đầu vào là 1 và đầu ra là 1 
model = LinearRegression(1, 1)

# * Khởi tạo MSE loss function
mse = nn.MSELoss()
# * Learning rate
alpha = 0.01
# * Tối ưu loss function với Stochastic gradient descent
optimizer = torch.optim.SGD(model.parameters(), lr=alpha)
# * Số lần lặp epoch
iter_number = 5000

# * Chạy thuật toán
for iter in range(iter_number):
    # * Từ giá trị theta của model hiện tại dự đoán giá trị ra
    y_pred = model(x)
    # * Từ giá trị dự đoán và giá trị thực tế tìm ra được loss function hiện tại
    loss = mse(y_pred, y)
    # print("Model:   ", [i for i in model.parameters()])
    print("Loss:    ", loss.data) 
    # print("Pred:    ", y_pred.data)
    # print("Real:    ", y)

    # * Tạo ra đạo hàm gốc là 0, pytorch sẽ cộng dồn đạo hàm trong quá trình back propagation.