Skip to content

Commit

Permalink
example notebook for batch training execution (#245)
Browse files Browse the repository at this point in the history
* Create example_batch_training.ipynb

* Update example_batch_training.ipynb

* Update example_batch_training.ipynb

* Update example_batch_training.ipynb

* Update notebooks/examples/example_batch_training.ipynb

Co-authored-by: Hannah Eslinger <[email protected]>

* Update notebooks/examples/example_batch_training.ipynb

Co-authored-by: Hannah Eslinger <[email protected]>

* Update notebooks/examples/example_batch_training.ipynb

Co-authored-by: Hannah Eslinger <[email protected]>

* Update example_batch_training.ipynb

* Update example_batch_training.ipynb

Co-authored-by: Hannah Eslinger <[email protected]>
  • Loading branch information
JanghyunJK and haneslinger authored Dec 5, 2022
1 parent 227fc34 commit 2bf6cbe
Showing 1 changed file with 154 additions and 0 deletions.
154 changes: 154 additions & 0 deletions notebooks/examples/example_batch_training.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import json\n",
"import logging\n",
"import os\n",
"from pathlib import Path\n",
"\n",
"from wattile.buildings_processing import prep_for_rnn\n",
"from wattile.data_reading import read_dataset_from_file\n",
"from wattile.entry_point import init_logging\n",
"from wattile.models import ModelFactory\n",
"\n",
"PROJECT_DIRECTORY = Path().resolve().parents[1]\n",
"logger = logging.getLogger(str(os.getpid()))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"\"\"\"\n",
"define parametric space\n",
"\"\"\"\n",
"parametric_space = [\n",
" {\n",
" \"building\": \"Synthetic Site\",\n",
" \"targets\": [\n",
" \"Synthetic Site Electricity Main Total Power\"\n",
" # add more targets if necessary\n",
" ],\n",
" \"dir_data\": \"tests/data/Synthetic Site\",\n",
" }\n",
" # add more entries if necessary\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# read configs file for training\n",
"with open(\n",
" PROJECT_DIRECTORY / \"wattile\" / \"configs\" / \"configs.json\", \"r\"\n",
") as f:\n",
" configs = json.load(f)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"\"\"\"\n",
"run model training and validation for the entire parametric space\n",
"\"\"\"\n",
"for entry in parametric_space:\n",
"\n",
" # set building name\n",
" building = entry[\"building\"]\n",
"\n",
" # set data directory\n",
" data_dir = entry[\"dir_data\"]\n",
"\n",
" for target in entry[\"targets\"]:\n",
"\n",
" \"\"\"\n",
" model training\n",
" \"\"\"\n",
" logger.info(\n",
" \"training for building = {} and target = {}\".format(building, target)\n",
" )\n",
"\n",
" # override configs params based on the parametric space information\n",
" configs[\"data_input\"][\"data_dir\"] = str(PROJECT_DIRECTORY / data_dir)\n",
" configs[\"data_input\"][\"data_config\"] = \"{} Config.json\".format(building)\n",
" configs[\"data_input\"][\"target_var\"] = target\n",
" exp_dir = PROJECT_DIRECTORY / building / target\n",
" configs[\"data_output\"][\"exp_dir\"] = str(exp_dir)\n",
"\n",
" # create results folder\n",
" init_logging(local_results_dir=configs[\"data_output\"][\"exp_dir\"])\n",
"\n",
" # read data\n",
" data = read_dataset_from_file(configs)\n",
"\n",
" # prepare data for training\n",
" train_df, val_df = prep_for_rnn(configs, data)\n",
" \n",
" # create model\n",
" model = ModelFactory.create_model(configs)\n",
" \n",
" # train model\n",
" results = model.train(train_df, val_df)\n",
"\n",
" \"\"\"\n",
" model validation (original data used)\n",
" \"\"\"\n",
" logger.info(\n",
" \"validating for building = {} and target = {}\".format(building, target)\n",
" )\n",
"\n",
" # reset config param for validation\n",
" configs[\"data_output\"][\"plot_comparison_portion_start\"] = 0.0\n",
" configs[\"data_output\"][\"plot_comparison_portion_end\"] = 1.0\n",
" configs[\"learning_algorithm\"][\"use_case\"] = \"validation\"\n",
"\n",
" # prepare data for validation\n",
" _, val_df = prep_for_rnn(configs, data)\n",
"\n",
" # validate model\n",
" results = model.validate(val_df)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}

0 comments on commit 2bf6cbe

Please sign in to comment.