AttributeError: объект «Оптимизация» не имеет атрибута «поезд».Python

Программы на Python
Anonymous
AttributeError: объект «Оптимизация» не имеет атрибута «поезд».

Сообщение Anonymous »

Я пытаюсь реализовать многомерный временной ряд с помощью pytorch. Здесь я привожу только ту часть кода, в которой возникает ошибка, однако я включил все упомянутые классы в свой полный код. Код взят с https://towardsdatascience.com/building ... 6e5b094e7b

Код: Выделить всё

class Optimization:
def __init__(self, model, loss_fn, optimizer):
self.model = model
self.loss_fn = loss_fn
self.optimizer = optimizer
self.train_losses = []
self.val_losses = []

def train_step(self, x, y):
# Sets model to train mode
self.model.train()

# Makes predictions
yhat = self.model(x)

# Computes loss
loss = self.loss_fn(y, yhat)

# Computes gradients
loss.backward()

# Updates parameters and zeroes gradients
self.optimizer.step()
self.optimizer.zero_grad()

# Returns the loss
return loss.item()

import torch.optim as optim
def get_model(model, model_params):
models = {
"rnn": RNNModel,
"lstm": LSTMModel,
"gru": GRUModel,
}
return models.get(model.lower())(**model_params)

input_dim = len(X_train.columns)
output_dim = 1
hidden_dim = 64
layer_dim = 3
batch_size = 64
dropout = 0.2
n_epochs = 100
learning_rate = 1e-3
weight_decay = 1e-6

model_params = {'input_dim': input_dim,
'hidden_dim' : hidden_dim,
'layer_dim' : layer_dim,
'output_dim' : output_dim,
'dropout_prob' : dropout}

model = get_model('lstm', model_params)

loss_fn = nn.MSELoss(reduction="mean")
optimizer = optim.Adam(model.parameters(), lr=learning_rate, weight_decay=weight_decay)

opt = Optimization(model=model, loss_fn=loss_fn, optimizer=optimizer)

opt.train(train_loader, val_loader, batch_size=batch_size,
n_epochs=n_epochs, n_features=input_dim)
Я получаю эту ошибку:

Код: Выделить всё

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
e:\codefolder\multivar.ipynb Cell 21 in ()
22 optimizer = optim.Adam(model.parameters(), lr=learning_rate, weight_decay=weight_decay)
24 opt = Optimization(model=model, loss_fn=loss_fn, optimizer=optimizer)
---> 25 opt.train(train_loader, val_loader, batch_size=batch_size, n_epochs=n_epochs, n_features=input_dim)
26 opt.plot_losses()
28 predictions, values = opt.evaluate(test_loader_one, batch_size=1, n_features=input_dim)

AttributeError: 'Optimization' object has no attribute 'train'
P.S. Я включил в свой код все классы и коды, как указано в статье, на которую я ссылался. Из-за объема и длины кодов я включил только основной код, в котором возникает ошибка.

Подробнее здесь: https://stackoverflow.com/questions/716 ... bute-train

Вернуться в «Python»