def main(): train_dataloader, validation_dataloader = get_dataloaders() model = Model() logger = NeptuneLogger(project='OpenClimateFix/predict-pv-yield') logger.log_hyperparams(params) _LOG.info(f'logger.version = {logger.version}') trainer = pl.Trainer(gpus=0, max_epochs=1, logger=logger) trainer.fit(model, train_dataloader)
def main(): train_dataloader, validation_dataloader = get_dataloaders( n_train_data=10, n_validation_data=10) model = Model() logger = NeptuneLogger(project='OpenClimateFix/predict-pv-yield') logger.log_hyperparams(model_configuration_default) _LOG.info(f'logger.version = {logger.version}') trainer = pl.Trainer(gpus=1, max_epochs=10, logger=logger) trainer.fit(model, train_dataloaders=train_dataloader, val_dataloaders=validation_dataloader) # run validation trainer.validate(model, validation_dataloader)
def main(): train_dataloader, validation_dataloader = get_dataloaders( n_train_data=24900, n_validation_data=1000, data_path="gs://solar-pv-nowcasting-data/prepared_ML_training_data/v4/", cloud="gcp", ) model = Model() logger = NeptuneLogger(project="OpenClimateFix/predict-pv-yield") logger.log_hyperparams(model_configuration_default) _LOG.info(f"logger.version = {logger.version}") trainer = pl.Trainer(gpus=1, max_epochs=10, logger=logger) trainer.fit(model, train_dataloaders=train_dataloader, val_dataloaders=validation_dataloader) # run validation trainer.validate(model, validation_dataloader)
def test_train(configuration_conv3d): config_file = "tests/configs/model/conv3d_gsp.yaml" config = load_config(config_file) dataset_configuration = configuration_conv3d # start model model = Model(**config) # create fake data loader train_dataset = FakeDataset(configuration=dataset_configuration) train_dataloader = torch.utils.data.DataLoader(train_dataset, batch_size=None) # fit model trainer = pl.Trainer(gpus=0, max_epochs=1) trainer.fit(model, train_dataloader) # predict over training set _ = trainer.predict(model, train_dataloader)
def test_model_forward(configuration_conv3d): config_file = "tests/configs/model/conv3d.yaml" config = load_config(config_file) dataset_configuration = configuration_conv3d # start model model = Model(**config) # create fake data loader train_dataset = FakeDataset(configuration=dataset_configuration) train_dataloader = torch.utils.data.DataLoader(train_dataset, batch_size=None) x = next(iter(train_dataloader)) # run data through model y = model(x) # check out put is the correct shape assert len(y.shape) == 2 assert y.shape[0] == 2 assert y.shape[1] == model.forecast_len_5
from predict_pv_yield.models.conv3d.model import Model from predict_pv_yield.data.dataloader import get_dataloaders from pytorch_lightning.utilities.cloud_io import load as pl_load import torch weights = './weights/conv3d/last.ckpt' checkpoint = pl_load(weights, map_location=torch.device('cpu')) model = Model(conv3d_channels=32, fc1_output_features=32, fc2_output_features=16, fc3_output_features=16, include_time=False, number_of_conv3d_layers=4) model.load_from_checkpoint(weights) train_dataset, validation_dataset = get_dataloaders()
def test_init(): config_file = "configs/model/conv3d.yaml" config = load_config(config_file) _ = Model(**config)
from predict_pv_yield.data.dataloader import get_dataloaders from pytorch_lightning.utilities.cloud_io import load as pl_load import torch import pandas as pd from predict_pv_yield.visualisation.line import plot_one_result, plot_batch_results weights = "./weights/conv3d/epoch_009.ckpt" checkpoint = pl_load(weights, map_location=torch.device("cpu")) model = Model( conv3d_channels=32, fc1_output_features=128, fc2_output_features=128, fc3_output_features=64, include_time=True, forecast_len=12, history_len=6, number_of_conv3d_layers=6, ) model.load_state_dict(checkpoint["state_dict"]) train_dataset, validation_dataset = get_dataloaders( cloud="gcp", data_path="gs://solar-pv-nowcasting-data/prepared_ML_training_data/v4/") validation_dataset = iter(validation_dataset) x = next(validation_dataset) y_hat_all = model(x) # plot one