{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"ForecastingClimatic_original.ipynb","version":"0.3.2","provenance":[],"collapsed_sections":[]},"kernelspec":{"name":"python3","display_name":"Python 3"},"accelerator":"GPU"},"cells":[{"cell_type":"markdown","metadata":{"id":"N9eRnbeURTNT","colab_type":"text"},"source":["# Required libraries"]},{"cell_type":"code","metadata":{"id":"mO0FwGM2QqIS","colab_type":"code","colab":{}},"source":["import pandas\n","import tqdm\n","import gzip\n","import os\n","import urllib.request\n","import pickle\n","import numpy\n","import time\n","import PIL.Image\n","\n","import torch\n","import torch.nn as nn\n","import torch.optim as optim\n","import torch.utils.data as dataset\n","\n","import scipy.signal as signal\n","import matplotlib.pyplot as plt\n","import matplotlib as mpl"],"execution_count":0,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"6B7Aob0wRdeM","colab_type":"text"},"source":["# Settings"]},{"cell_type":"code","metadata":{"id":"0JGkcu1ARe-u","colab_type":"code","colab":{}},"source":["DATA_URL = ('https://crudata.uea.ac.uk/cru/data/hrg/cru_ts_4.01/'\n"," 'cruts.1709081022.v4.01/tmp/cru_ts4.01.1901.2016.tmp.dat.gz')\n","DATA_DIR = 'data'\n","DATA_CSV = os.path.join(DATA_DIR, 'cru_ts4.01.1901.2016.tmp.dat.gz')\n","DATA_PKL = os.path.join(DATA_DIR, 'cru_ts4.01.1901.2016.tmp.dat.pkl')\n","\n","SAMPLE_SIZE = 519718\n","\n","EPOCH = 30\n","BATCH_SIZE = 128\n","LEARNING_RATE = 0.01"],"execution_count":0,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"TNZjKPRBRi7f","colab_type":"text"},"source":["# Download"]},{"cell_type":"code","metadata":{"id":"8D6zsKoqSLsf","colab_type":"code","outputId":"6da7660b-fe6e-430d-9ad5-84fcbda84bf7","executionInfo":{"status":"ok","timestamp":1557175710584,"user_tz":-540,"elapsed":3673,"user":{"displayName":"Atsushi Takeda","photoUrl":"https://lh3.googleusercontent.com/-61K4FDewkLo/AAAAAAAAAAI/AAAAAAAAACM/eYtVf1e5o5A/s64/photo.jpg","userId":"06675068946284916780"}},"colab":{"base_uri":"https://localhost:8080/","height":317}},"source":["class TqdmUpTo(tqdm.tqdm):\n"," '''copied from https://github.com/tqdm/tqdm/blob/master/examples/tqdm_wget.py'''\n","\n"," def update_to(self, b=1, bsize=1, tsize=None):\n"," if tsize is not None:\n"," self.total = tsize\n"," self.update(b * bsize - self.n)\n","\n","\n","def load_data():\n"," os.makedirs(DATA_DIR, exist_ok=True)\n","\n"," # download\n"," if not os.path.isfile(DATA_CSV):\n"," with TqdmUpTo(unit='B', unit_scale=True,\n"," unit_divisor=1024, desc=os.path.basename(DATA_CSV)) as t:\n"," urllib.request.urlretrieve(DATA_URL, DATA_CSV, reporthook=t.update_to)\n","\n"," # make data file (remove invalid data)\n"," if not os.path.isfile(DATA_PKL):\n"," with gzip.open(DATA_CSV, 'r') as reader:\n"," data = pandas.read_csv(reader, delim_whitespace=True, header=None).values\n","\n"," data = data.reshape((-1, 360 * 720))\n"," data = data[:, ((data == -999).sum(axis=0)) == 0].transpose().astype(\"int32\")\n","\n"," with open(DATA_PKL, 'wb') as writer:\n"," pickle.dump(data, writer)\n","\n"," with open(DATA_PKL, 'rb') as reader:\n"," return pickle.load(reader)\n","\n","data = load_data()\n","data = (data - data.min()) * (1.0 / (data.max() - data.min()))\n","print('available data size:', data.shape)\n","\n","year_mean = data.reshape(data.shape[0], -1, 12)\n","year_mean = numpy.average(year_mean, axis=2)\n","\n","future_mean = signal.convolve2d(\n"," year_mean[:, 30:], numpy.ones((1, 10)) / 10, mode='valid')\n","\n","past_mean = signal.convolve2d(\n"," year_mean[:, :-10], numpy.ones((1, 30)) / 30, mode='valid')\n","chance = (future_mean > past_mean).astype(numpy.float)\n","chance = numpy.average(chance, axis=0)\n","\n","plt.plot(range(1930, 2007), chance)\n","plt.xlabel('year')\n","plt.ylabel('probability of rising tempalatures')\n","plt.show()\n","\n","print('chance:', numpy.average(chance))"],"execution_count":0,"outputs":[{"output_type":"stream","text":["available data size: (67420, 1392)\n"],"name":"stdout"},{"output_type":"display_data","data":{"image/png":"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\nxJ9O6F8AAAAASUVORK5CYII=\n","text/plain":["
"]},"metadata":{"tags":[]}},{"output_type":"stream","text":["chance: 0.6983876995149614\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"id":"7dTYFaNrSiGN","colab_type":"text"},"source":["# Dataset"]},{"cell_type":"code","metadata":{"id":"-L9nVaNGS6Ao","colab_type":"code","outputId":"c81dd70b-090a-4292-b30c-0e542d753304","executionInfo":{"status":"ok","timestamp":1557175711052,"user_tz":-540,"elapsed":4110,"user":{"displayName":"Atsushi Takeda","photoUrl":"https://lh3.googleusercontent.com/-61K4FDewkLo/AAAAAAAAAAI/AAAAAAAAACM/eYtVf1e5o5A/s64/photo.jpg","userId":"06675068946284916780"}},"colab":{"base_uri":"https://localhost:8080/","height":263}},"source":["class Dataset(dataset.Dataset):\n","\n"," def __init__(self, data, indices):\n"," self.data = data\n"," self.indices = indices\n","\n"," def __len__(self):\n"," return len(self.indices)\n","\n"," def __getitem__(self, idx):\n"," pos = self.indices[idx] % self.data.shape[0]\n"," year = self.indices[idx] // self.data.shape[0]\n"," past = self.data[pos, (year + 0) * 12:(year + 30) * 12]\n"," future = self.data[pos, (year + 30) * 12:(year + 40) * 12]\n"," target = 1 if numpy.average(future) > numpy.average(past) else 0\n","\n"," # resize to 60x60\n"," img = past.reshape(-1, 12)\n"," img = PIL.Image.fromarray(img)\n"," img = img.resize((60, 60), resample=PIL.Image.NEAREST)\n"," img = numpy.array(img).T\n","\n"," # heat color\n"," r = numpy.ones_like(img)\n"," g = img\n"," b = numpy.zeros_like(img)\n"," img = numpy.stack([r, g, b], axis=0)\n","\n"," return img, target\n","\n"," \n","numpy.random.seed(0)\n","\n","indices = numpy.random.choice(\n"," data.shape[0] * (data.shape[1] // 12 - 39), SAMPLE_SIZE, replace=False)\n","\n","train_dataset = Dataset(data, indices[len(indices) // 4:])\n","valid_dataset = Dataset(data, indices[:len(indices) // 4])\n","\n","print('train data size:', len(train_dataset))\n","print('valid data size:', len(valid_dataset))\n","\n","for i in range(8):\n"," image = train_dataset[i][0]\n"," image = numpy.rollaxis(image, 0, 3)\n","\n"," plt.subplot(2, 4, i + 1)\n"," plt.tick_params(\n"," labelbottom=False, labelleft=False, labelright=False, labeltop=False)\n"," plt.imshow(image)\n","\n","plt.show()"],"execution_count":0,"outputs":[{"output_type":"stream","text":["train data size: 389789\n","valid data size: 129929\n"],"name":"stdout"},{"output_type":"display_data","data":{"image/png":"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\nWFzscfQVF7IAAAAASUVORK5CYII=\n","text/plain":["
"]},"metadata":{"tags":[]}}]},{"cell_type":"markdown","metadata":{"id":"ey2omndhT0x-","colab_type":"text"},"source":["# Model"]},{"cell_type":"code","metadata":{"id":"uB_Y0w0wT2TV","colab_type":"code","outputId":"000bd295-7ab1-42dd-9d1f-4aac1580bc57","executionInfo":{"status":"ok","timestamp":1557175711273,"user_tz":-540,"elapsed":4319,"user":{"displayName":"Atsushi Takeda","photoUrl":"https://lh3.googleusercontent.com/-61K4FDewkLo/AAAAAAAAAAI/AAAAAAAAACM/eYtVf1e5o5A/s64/photo.jpg","userId":"06675068946284916780"}},"colab":{"base_uri":"https://localhost:8080/","height":34}},"source":["class LeNet(nn.Module):\n","\n"," def __init__(self):\n"," super().__init__()\n","\n"," self.conv = nn.Sequential(\n"," nn.Conv2d(3, 6, kernel_size=5),\n"," nn.Tanh(),\n"," nn.MaxPool2d(kernel_size=2, stride=2),\n"," nn.Conv2d(6, 16, kernel_size=5),\n"," nn.Tanh(),\n"," nn.MaxPool2d(kernel_size=2, stride=2))\n","\n"," self.full = nn.Sequential(\n"," nn.Linear(16 * 12 * 12, 120),\n"," nn.Tanh(),\n"," nn.Linear(120, 84),\n"," nn.Tanh(),\n"," nn.Linear(84, 2))\n","\n"," def forward(self, x):\n"," x = self.conv(x)\n"," x = x.view(x.size(0), -1)\n"," x = self.full(x)\n","\n"," return x\n","\n","\n","model = LeNet()\n","\n","optimizer = optim.SGD(model.parameters(), lr=LEARNING_RATE)\n","criterion = nn.CrossEntropyLoss()\n","\n","print('model size:', sum(p.numel() for p in model.parameters()))"],"execution_count":0,"outputs":[{"output_type":"stream","text":["model size: 289806\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"id":"jhoMh1oOUVFt","colab_type":"text"},"source":["# Training"]},{"cell_type":"code","metadata":{"id":"9Zq_5SarUYRG","colab_type":"code","outputId":"20876e32-702e-4811-e1b5-275e01f99061","executionInfo":{"status":"ok","timestamp":1557178802200,"user_tz":-540,"elapsed":218088,"user":{"displayName":"Atsushi Takeda","photoUrl":"https://lh3.googleusercontent.com/-61K4FDewkLo/AAAAAAAAAAI/AAAAAAAAACM/eYtVf1e5o5A/s64/photo.jpg","userId":"06675068946284916780"}},"colab":{"base_uri":"https://localhost:8080/","height":1071}},"source":["class AverageMeter(object):\n","\n"," def __init__(self):\n"," self.reset()\n","\n"," def reset(self):\n"," self.val = 0\n"," self.avg = 0\n"," self.sum = 0\n"," self.count = 0\n","\n"," def update(self, val, n=1):\n"," self.val = val\n"," self.sum += val * n\n"," self.count += n\n"," self.avg = self.sum / self.count\n","\n","\n","def accuracy(output, target):\n"," with torch.no_grad():\n"," return output.argmax(dim=1).eq(target).float().sum() / target.size(0)\n","\n","\n","def perform(model, loader, optimizer=None):\n"," loss_avg = AverageMeter()\n"," acc_avg = AverageMeter()\n","\n"," for x, t in loader:\n"," x = x.cuda(non_blocking=True)\n"," t = t.cuda(non_blocking=True)\n","\n"," # forward\n"," y = model(x)\n","\n"," loss = criterion(y, t)\n"," acc = accuracy(y, t)\n","\n"," # update parameters\n"," if optimizer is not None:\n"," optimizer.zero_grad()\n"," loss.backward()\n"," optimizer.step()\n","\n"," # update results\n"," loss_avg.update(float(loss), x.size(0))\n"," acc_avg.update(float(acc), x.size(0))\n","\n"," return loss_avg.avg, acc_avg.avg\n","\n","\n","model = model.cuda()\n","criterion = criterion.cuda()\n","\n","torch.torch.backends.cudnn.benchmark = True\n","torch.torch.backends.cudnn.enabled = True\n","\n","train_loader = dataset.DataLoader(\n"," train_dataset, batch_size=BATCH_SIZE, shuffle=True,\n"," pin_memory=True, num_workers=2)\n","\n","valid_loader = dataset.DataLoader(\n"," valid_dataset, batch_size=BATCH_SIZE, shuffle=False,\n"," pin_memory=True, num_workers=2)\n","\n","schesuler = optim.lr_scheduler.CosineAnnealingLR(optimizer, EPOCH)\n","\n","train_time = AverageMeter()\n","valid_time = AverageMeter()\n","train_loss = []\n","train_acc = []\n","valid_loss = []\n","valid_acc = []\n","\n","for epoch in range(EPOCH):\n"," schesuler.step()\n","\n"," start_time = time.time()\n"," model.train()\n"," loss, acc = perform(model, train_loader, optimizer)\n"," train_loss.append(loss)\n"," train_acc.append(acc)\n"," train_time.update(time.time() - start_time)\n"," print('[{}] train: loss={:.4f}, accuracy={:.4f}'.format(epoch, loss, acc))\n","\n"," start_time = time.time()\n"," model.eval()\n"," with torch.no_grad():\n"," loss, acc = perform(model, valid_loader)\n"," valid_loss.append(loss)\n"," valid_acc.append(acc)\n"," valid_time.update(time.time() - start_time)\n"," print('[{}] valid: loss={:.4f}, accuracy={:.4f}'.format(epoch, loss, acc))\n","\n","print('train time/epoch: {:.4f} sec'.format(train_time.avg))\n","print('valid time/epoch: {:.4f} sec'.format(valid_time.avg))"],"execution_count":0,"outputs":[{"output_type":"stream","text":["[0] train: loss=0.6116, accuracy=0.6975\n","[0] valid: loss=0.6102, accuracy=0.6980\n","[1] train: loss=0.6094, accuracy=0.6975\n","[1] valid: loss=0.6068, accuracy=0.6980\n","[2] train: loss=0.6026, accuracy=0.6995\n","[2] valid: loss=0.5942, accuracy=0.6982\n","[3] train: loss=0.5743, accuracy=0.7145\n","[3] valid: loss=0.7358, accuracy=0.6692\n","[4] train: loss=0.5399, accuracy=0.7383\n","[4] valid: loss=0.5190, accuracy=0.7472\n","[5] train: loss=0.5151, accuracy=0.7517\n","[5] valid: loss=0.5184, accuracy=0.7530\n","[6] train: loss=0.4966, accuracy=0.7621\n","[6] valid: loss=0.4844, accuracy=0.7716\n","[7] train: loss=0.4777, accuracy=0.7741\n","[7] valid: loss=0.5163, accuracy=0.7517\n","[8] train: loss=0.4583, accuracy=0.7862\n","[8] valid: loss=0.4410, accuracy=0.7971\n","[9] train: loss=0.4364, accuracy=0.7999\n","[9] valid: loss=0.4322, accuracy=0.8022\n","[10] train: loss=0.4121, accuracy=0.8134\n","[10] valid: loss=0.4088, accuracy=0.8135\n","[11] train: loss=0.3894, accuracy=0.8249\n","[11] valid: loss=0.3770, accuracy=0.8326\n","[12] train: loss=0.3720, accuracy=0.8344\n","[12] valid: loss=0.3710, accuracy=0.8351\n","[13] train: loss=0.3567, accuracy=0.8424\n","[13] valid: loss=0.3624, accuracy=0.8384\n","[14] train: loss=0.3446, accuracy=0.8488\n","[14] valid: loss=0.3361, accuracy=0.8531\n","[15] train: loss=0.3337, accuracy=0.8539\n","[15] valid: loss=0.3347, accuracy=0.8526\n","[16] train: loss=0.3251, accuracy=0.8581\n","[16] valid: loss=0.3278, accuracy=0.8558\n","[17] train: loss=0.3172, accuracy=0.8623\n","[17] valid: loss=0.3289, accuracy=0.8545\n","[18] train: loss=0.3110, accuracy=0.8656\n","[18] valid: loss=0.3077, accuracy=0.8665\n","[19] train: loss=0.3057, accuracy=0.8678\n","[19] valid: loss=0.3467, accuracy=0.8461\n","[20] train: loss=0.3015, accuracy=0.8703\n","[20] valid: loss=0.3007, accuracy=0.8702\n","[21] train: loss=0.2979, accuracy=0.8718\n","[21] valid: loss=0.3021, accuracy=0.8691\n","[22] train: loss=0.2952, accuracy=0.8732\n","[22] valid: loss=0.2983, accuracy=0.8719\n","[23] train: loss=0.2930, accuracy=0.8742\n","[23] valid: loss=0.2951, accuracy=0.8730\n","[24] train: loss=0.2913, accuracy=0.8750\n","[24] valid: loss=0.2930, accuracy=0.8734\n","[25] train: loss=0.2901, accuracy=0.8758\n","[25] valid: loss=0.2924, accuracy=0.8742\n","[26] train: loss=0.2892, accuracy=0.8759\n","[26] valid: loss=0.2913, accuracy=0.8745\n","[27] train: loss=0.2887, accuracy=0.8763\n","[27] valid: loss=0.2907, accuracy=0.8749\n","[28] train: loss=0.2885, accuracy=0.8762\n","[28] valid: loss=0.2907, accuracy=0.8749\n","[29] train: loss=0.2884, accuracy=0.8762\n","[29] valid: loss=0.2907, accuracy=0.8749\n","train time/epoch: 79.1316 sec\n","valid time/epoch: 23.7698 sec\n"],"name":"stdout"}]},{"cell_type":"markdown","metadata":{"id":"oad2EDvB1fHn","colab_type":"text"},"source":["# Result"]},{"cell_type":"code","metadata":{"id":"OSh2iO5u1grr","colab_type":"code","outputId":"e1235b16-acb1-41ff-b493-f225502bf2c8","executionInfo":{"status":"ok","timestamp":1557178802778,"user_tz":-540,"elapsed":587,"user":{"displayName":"Atsushi Takeda","photoUrl":"https://lh3.googleusercontent.com/-61K4FDewkLo/AAAAAAAAAAI/AAAAAAAAACM/eYtVf1e5o5A/s64/photo.jpg","userId":"06675068946284916780"}},"colab":{"base_uri":"https://localhost:8080/","height":643}},"source":["print('train: loss={:.4f}, accuracy={:.4f}'.format(train_loss[-1], train_acc[-1]))\n","print('valid: loss={:.4f}, accuracy={:.4f}'.format(valid_loss[-1], valid_acc[-1]))\n","\n","figure = plt.figure(figsize=(8, 10))\n","axis_loss, axis_acc = figure.subplots(2, 1)\n","mpl.rcParams[\"legend.loc\"] = 'upper right'\n","\n","axis_loss.set_xlabel('epoch')\n","axis_loss.set_ylabel('loss')\n","axis_loss.plot(range(len(train_loss)), train_loss, linestyle='--', label='training')\n","axis_loss.plot(range(len(valid_loss)), valid_loss, linestyle='-', label='validation')\n","axis_loss.legend()\n","\n","axis_acc.set_xlabel('epoch')\n","axis_acc.set_ylabel('accuracy')\n","axis_acc.plot(range(len(train_acc)), train_acc, linestyle='--', label='training')\n","axis_acc.plot(range(len(valid_acc)), valid_acc, linestyle='-', label='validation')\n","axis_acc.legend()\n","\n","plt.show()"],"execution_count":0,"outputs":[{"output_type":"stream","text":["train: loss=0.2884, accuracy=0.8762\n","valid: loss=0.2907, accuracy=0.8749\n"],"name":"stdout"},{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["
"]},"metadata":{"tags":[]}}]}]}