Как находить R^2 и MAE metrics в Pytorch?
inputs_train_torch = torch.from_numpy(inputs_train).float()
inputs_test_torch = torch.from_numpy(inputs_test).float()
outputs_train_torch = torch.from_numpy(outputs_train).float()
outputs_test_torch = torch.from_numpy(outputs_test).float()
model = torch.nn.Sequential(
torch.nn.Linear(3, 24),
torch.nn.ReLU(),
torch.nn.Linear(24, 24),
torch.nn.ReLU(),
torch.nn.Linear(24, 1)
)
criterion = torch.nn.MSELoss(reduction='mean')
optimizer = torch.optim.Adam(model.parameters(), lr=0.09)
for epoch in range(101):
output = model(inputs_train_torch)
loss = criterion(output, torch.reshape(outputs_train_torch, (5760, 1)))
print('Epoch: ', epoch, 'Loss train: ', loss.item())
optimizer.zero_grad()
loss.backward()
optimizer.step()
for epoch in range(101):
output = model(inputs_test_torch)
loss = criterion(output, torch.reshape(outputs_test_torch, (2880, 1)))
print('Epoch: ', epoch, 'Loss test: ', loss.item())
optimizer.zero_grad()
loss.backward()
optimizer.step()
Я уже нашел MSE, нужно найти MAE и R^2
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Давайте вместе поищем. Гуглим сначала слово MSELoss, находим ссылку на документацию PyTorch на функцию MSELoss. Переходим на уровень выше, ищем там по слову MAE, находим функцию L1Loss - это и есть MAE как написано в её описании (насколько я помню терминологию мера L1 - это MAE, а L2 - это MSE, почему в Torch нет однообразия в названиях функций я не знаю).
С R^2 вот сложнее, в самом PyTorch я её сходу не нашёл, видимо нужно использовать например функцию R2Score из PyTorch Ignite.