Beispiel #1
0
    # a neat trick to save screen space:
    if i % 25 == 1:
        print(f'epoch: {i}  loss: {loss.item()}')

    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

# graphy stuff
print(f'epoch: {i:3}  loss: {loss.item():10.8f}')  # print the last line
print(f'\nDuration: {time.time() - start_time:.0f} seconds'
      )  # print the time elapsed

plt.plot(range(epochs), losses)
plt.ylabel('RMSE Loss')
plt.xlabel('epoch')

with torch.no_grad():
    y_val = model(cat_test, con_test)
    loss = torch.sqrt(criterion(y_val, y_test))
print(f'RMSE: {loss:.8f}')

print(f'{"PREDICTED":>12} {"ACTUAL":>8} {"DIFF":>8}')
for i in range(50):
    diff = np.abs(y_val[i].item() - y_test[i].item())
    print(
        f'{i+1:2}. {y_val[i].item():8.4f} {y_test[i].item():8.4f} {diff:8.4f}')

torch.save(model.state_dict(), 'TaxiFareRegrModel.pt')