def evaluate_mae(self, X_test, y_test, device, batch_size=4096): X_test = torch.as_tensor(X_test, device=device) y_test = check_numpy(y_test) self.model.train(False) with torch.no_grad(): prediction = process_in_chunks(self.model, X_test, batch_size=batch_size) prediction = check_numpy(prediction) error_rate = np.abs(y_test - prediction).mean() return error_rate
def evaluate_logloss(self, X_test, y_test, device, batch_size=512): X_test = torch.as_tensor(X_test, device=device) y_test = check_numpy(y_test) self.model.train(False) with torch.no_grad(): logits = F.softmax(process_in_chunks(self.model, X_test, batch_size=batch_size), dim=1) logits = check_numpy(logits) y_test = torch.from_numpy(y_test) logloss = log_loss(check_numpy(to_one_hot(y_test)), logits) return logloss
def evaluate_classification_error(self, X_test, y_test, device, batch_size=4096): X_test = torch.as_tensor(X_test, device=device) y_test = check_numpy(y_test) self.model.train(False) with torch.no_grad(): logits = process_in_chunks(self.model, X_test, batch_size=batch_size) logits = check_numpy(logits) error_rate = (y_test != np.argmax(logits, axis=1)).mean() return error_rate