diff --git a/transformer/scaling.ipynb b/transformer/scaling.ipynb index b181a89..ddcfb7e 100644 --- a/transformer/scaling.ipynb +++ b/transformer/scaling.ipynb @@ -3,7 +3,7 @@ { "cell_type": "code", "execution_count": 55, - "id": "98b88925", + "id": "5a62c0ff", "metadata": {}, "outputs": [], "source": [ @@ -18,7 +18,7 @@ { "cell_type": "code", "execution_count": 50, - "id": "042a0773", + "id": "c75f5208", "metadata": {}, "outputs": [], "source": [ @@ -32,7 +32,7 @@ { "cell_type": "code", "execution_count": 8, - "id": "35c300a9", + "id": "aa342b02", "metadata": {}, "outputs": [ { @@ -169,7 +169,7 @@ { "cell_type": "code", "execution_count": 16, - "id": "c7b82213", + "id": "5aefbb4a", "metadata": {}, "outputs": [], "source": [ @@ -180,7 +180,7 @@ { "cell_type": "code", "execution_count": 11, - "id": "053971b7", + "id": "047f9d32", "metadata": {}, "outputs": [], "source": [ @@ -190,7 +190,7 @@ { "cell_type": "code", "execution_count": 12, - "id": "260573cc", + "id": "513bbe1f", "metadata": {}, "outputs": [], "source": [ @@ -200,7 +200,7 @@ { "cell_type": "code", "execution_count": 13, - "id": "491f8c85", + "id": "2e484da6", "metadata": {}, "outputs": [], "source": [ @@ -209,7 +209,7 @@ }, { "cell_type": "markdown", - "id": "ed03133a", + "id": "b5630b79", "metadata": {}, "source": [ "## Sclaing Experiments\n", @@ -228,7 +228,7 @@ { "cell_type": "code", "execution_count": 51, - "id": "0a65866c", + "id": "7945eff4", "metadata": {}, "outputs": [], "source": [ @@ -237,7 +237,7 @@ }, { "cell_type": "markdown", - "id": "d51bfbfc", + "id": "b0b59bb2", "metadata": {}, "source": [ "### Encoder Scaling" @@ -246,7 +246,7 @@ { "cell_type": "code", "execution_count": null, - "id": "af9dc0ae", + "id": "681199ae", "metadata": {}, "outputs": [], "source": [ @@ -296,37 +296,19 @@ { "cell_type": "code", "execution_count": 53, - "id": "ef47755d", - "metadata": {}, - "outputs": [], - "source": [ - "enc_metrics_out = open(\"elec_enc_metrics.pkl\", \"wb\")" - ] - }, - { - "cell_type": "code", - "execution_count": 56, - "id": "855b130e", - "metadata": {}, - "outputs": [], - "source": [ - "pickle.dump(enc_metrics, enc_metrics_out)" - ] - }, - { - "cell_type": "code", - "execution_count": 57, - "id": "869ccbec", + "id": "c6cb9386", "metadata": {}, "outputs": [], "source": [ + "enc_metrics_out = open(\"elec_enc_metrics.pkl\", \"wb\")\n", + "pickle.dump(enc_metrics, enc_metrics_out)\n", "enc_metrics_out.close()" ] }, { "cell_type": "code", "execution_count": 66, - "id": "02df0064", + "id": "513cbbbf", "metadata": { "scrolled": true }, @@ -367,7 +349,7 @@ { "cell_type": "code", "execution_count": 68, - "id": "95290703", + "id": "af5715b2", "metadata": {}, "outputs": [ { @@ -405,8 +387,8 @@ }, { "cell_type": "code", - "execution_count": 72, - "id": "61cf3e7d", + "execution_count": 79, + "id": "1c64e02c", "metadata": {}, "outputs": [ { @@ -415,13 +397,13 @@ "Text(0.5, 1.0, 'Encoder Scaling')" ] }, - "execution_count": 72, + "execution_count": 79, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -435,24 +417,86 @@ "source": [ "plt.plot(\n", " [metrics[\"trainable_parameters\"] for metrics in enc_metrics],\n", - " [metrics[\"MSIS\"] for metrics in enc_metrics], \n", + " [metrics[\"NRMSE\"] for metrics in enc_metrics], \n", ")\n", "plt.xlabel(\"trainable parameters\")\n", - "plt.ylabel(\"MSIS\")\n", + "plt.ylabel(\"NRMSE\")\n", "plt.title(\"Encoder Scaling\")" ] }, { "cell_type": "markdown", - "id": "4dedbf76", + "id": "13356916", "metadata": {}, "source": [ "### Decoder Scaling" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "a175e127", + "metadata": {}, + "outputs": [], + "source": [ + "dec_metrics = []\n", + "for layer in layers:\n", + " estimator = TransformerEstimator(\n", + " freq=freq,\n", + " prediction_length=prediction_length,\n", + " context_length=prediction_length*7,\n", + "\n", + " nhead=2,\n", + " num_encoder_layers=6,\n", + " num_decoder_layers=layer,\n", + " dim_feedforward=16,\n", + " activation=\"gelu\",\n", + "\n", + " num_feat_static_cat=1,\n", + " cardinality=[320],\n", + " embedding_dimension=[5],\n", + "\n", + " batch_size=128,\n", + " num_batches_per_epoch=100,\n", + " trainer_kwargs=dict(max_epochs=50, accelerator='auto', gpus=1),\n", + " )\n", + " \n", + " predictor = estimator.train(\n", + " training_data=train_ds,\n", + " validation_data=val_ds,\n", + " num_workers=8,\n", + " shuffle_buffer_length=1024\n", + " )\n", + " \n", + " forecast_it, ts_it = make_evaluation_predictions(\n", + " dataset=test_ds, \n", + " predictor=predictor\n", + " )\n", + " forecasts = list(forecast_it)\n", + " if layer == layers[0]:\n", + " tss = list(ts_it)\n", + " \n", + " evaluator = Evaluator()\n", + " agg_metrics, _ = evaluator(iter(tss), iter(forecasts))\n", + " agg_metrics[\"trainable_parameters\"] = summarize(estimator.create_lightning_module()).trainable_parameters\n", + " dec_metrics.append(agg_metrics.copy())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c439510e", + "metadata": {}, + "outputs": [], + "source": [ + "dec_metrics_out = open(\"elec_dec_metrics.pkl\", \"wb\")\n", + "pickle.dump(dec_metrics, dec_metrics_out)\n", + "dec_metrics_out.close()" + ] + }, { "cell_type": "markdown", - "id": "abeca54b", + "id": "78be6dd9", "metadata": {}, "source": [ "### Symmetric Scaling" @@ -461,10 +505,64 @@ { "cell_type": "code", "execution_count": null, - "id": "972f3216", + "id": "069b20d9", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "sym_metrics = []\n", + "for layer in layers:\n", + " estimator = TransformerEstimator(\n", + " freq=freq,\n", + " prediction_length=prediction_length,\n", + " context_length=prediction_length*7,\n", + "\n", + " nhead=2,\n", + " num_encoder_layers=layer,\n", + " num_decoder_layers=layer,\n", + " dim_feedforward=16,\n", + " activation=\"gelu\",\n", + "\n", + " num_feat_static_cat=1,\n", + " cardinality=[320],\n", + " embedding_dimension=[5],\n", + "\n", + " batch_size=128,\n", + " num_batches_per_epoch=100,\n", + " trainer_kwargs=dict(max_epochs=50, accelerator='auto', gpus=1),\n", + " )\n", + " \n", + " predictor = estimator.train(\n", + " training_data=train_ds,\n", + " validation_data=val_ds,\n", + " num_workers=8,\n", + " shuffle_buffer_length=1024\n", + " )\n", + " \n", + " forecast_it, ts_it = make_evaluation_predictions(\n", + " dataset=test_ds, \n", + " predictor=predictor\n", + " )\n", + " forecasts = list(forecast_it)\n", + " if layer == layers[0]:\n", + " tss = list(ts_it)\n", + " \n", + " evaluator = Evaluator()\n", + " agg_metrics, _ = evaluator(iter(tss), iter(forecasts))\n", + " agg_metrics[\"trainable_parameters\"] = summarize(estimator.create_lightning_module()).trainable_parameters\n", + " sym_metrics.append(agg_metrics.copy())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9d48d029", + "metadata": {}, + "outputs": [], + "source": [ + "sym_metrics_out = open(\"elec_sym_metrics.pkl\", \"wb\")\n", + "pickle.dump(sym_metrics, sym_metrics_out)\n", + "sym_metrics_out.close()" + ] } ], "metadata": {