--- a +++ b/notebooks/PytorchNoteBook.ipynb @@ -0,0 +1,1186 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from Classes.Data import augmentation, LeukemiaDataset, augmentation_alb\n", + "from Classes.Helpers import Helpers\n", + "from Classes.Model_2020 import LuekemiaNet, learner\n", + "from Classes.model_api import plot_training_history, show_predictions,\\\n", + " confusion_matrix2, get_predictions, predict_probability, show_prediction_confidence\n", + "from Classes.interpretability import interpret_model\n", + "from torch.utils.data import DataLoader\n", + "from torch.utils.data.sampler import SubsetRandomSampler\n", + "import torch.optim as optim\n", + "import pandas as pd\n", + "from torch import nn\n", + "import random\n", + "import torch\n", + "import os\n", + "from sklearn.model_selection import train_test_split\n", + "from sklearn.metrics import confusion_matrix, classification_report\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "SEED = 323\n", + "def seed_everything(seed=SEED):\n", + " random.seed(seed)\n", + " os.environ['PYHTONHASHSEED'] = str(seed)\n", + " np.random.seed(seed)\n", + " torch.manual_seed(seed)\n", + " torch.cuda.manual_seed(seed)\n", + " torch.backends.cudnn.deterministic = True\n", + "\n", + "\n", + "seed_everything(SEED)\n", + "# helper class\n", + "helper = Helpers(\"Test Model\", False)\n", + "# train data directory\n", + "train_dir = 'C:/Peter Moss AML Leukemia Research/Dataset/all_train/'\n", + "# train label directoy\n", + "train_csv = 'C:/Peter Moss AML Leukemia Research/Dataset/train.csv'\n", + "# labels\n", + "class_name = [\"neg\", \"pos\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "image_path = 'C:\\Peter Moss AML Leukemia Research\\ALL-PyTorch-2020\\Classifier\\Model\\Data\\Test\\Im047_0.jpg'\n", + "image_path2 = 'C:\\Peter Moss AML Leukemia Research\\ALL-PyTorch-2020\\Classifier\\Model\\Data\\Test\\Im006_1.jpg'\n", + "label_idx = 'C:\\Peter Moss AML Leukemia Research\\ALL-PyTorch-2020\\Classifier\\Model\\class_idx.json'" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0 49\n", + "1 39\n", + "Name: label, dtype: int64\n", + " data label\n", + "0 Im001_1 1\n", + "1 Im002_1 1\n", + "2 Im003_1 1\n", + "3 Im004_1 1\n", + "4 Im005_1 1\n", + "79 9\n" + ] + } + ], + "source": [ + "# training batch size\n", + "batch_size = helper.config[\"classifier\"][\"train\"][\"batch\"]\n", + "# accuracy and loss save directory\n", + "acc_loss_png = helper.config[\"classifier\"][\"model_params\"][\"plot_loss_and_acc\"]\n", + "# confusion matrix save directory\n", + "confusion_png = helper.config[\"classifier\"][\"model_params\"][\"confusion_matrix\"]\n", + "# number of epoch\n", + "epochs = helper.config[\"classifier\"][\"train\"][\"epochs\"]\n", + "# learning rate\n", + "learn_rate = helper.config[\"classifier\"][\"train\"][\"learning_rate_adam\"]\n", + "# decay\n", + "decay = helper.config[\"classifier\"][\"train\"][\"decay_adam\"]\n", + "# read train CSV file\n", + "labels = pd.read_csv(train_csv)\n", + "# print label count\n", + "labels_count = labels.label.value_counts()\n", + "print(labels_count)\n", + "# print 5 label header\n", + "print(labels.head())\n", + "# splitting data into training and validation set\n", + "train, valid = train_test_split(labels, stratify = labels.label, test_size = 0.1, shuffle=True)\n", + "print(len(train),len(valid))" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "79 9\n" + ] + } + ], + "source": [ + "#data augmentation\n", + "training_transforms, validation_transforms = augmentation()\n", + "\n", + "# Read Acute Lymphoblastic Leukemia dataset from disk\n", + "trainset = LeukemiaDataset(df_data=train, data_dir=train_dir, transform=training_transforms)\n", + "validset = LeukemiaDataset(df_data=valid, data_dir=train_dir, transform=validation_transforms)\n", + "\n", + "train_size, valid_size = len(trainset), len(validset)\n", + "print(train_size, valid_size)\n", + "\n", + "train_sampler = SubsetRandomSampler(list(train.index))\n", + "valid_sampler = SubsetRandomSampler(list(valid.index))\n", + "\n", + "# Prepare dataset for neural networks\n", + "train_data_loader = DataLoader(trainset, batch_size=batch_size, shuffle=True)\n", + "valid_data_loader = DataLoader(validset, batch_size=batch_size, shuffle=False)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Training Set:\n", + "\n", + "Image batch dimensions: torch.Size([10, 3, 100, 100])\n", + "Image label dimensions: torch.Size([10])\n", + "\n", + "\n", + "The labels: tensor([1, 1, 0, 0, 0, 0, 0, 1, 1])\n" + ] + } + ], + "source": [ + "# Checking the dataset\n", + "print('Training Set:\\n')\n", + "for images, labels in train_data_loader:\n", + " print('Image batch dimensions:', images.size())\n", + " print('Image label dimensions:', labels.size())\n", + " break\n", + "print(\"\\n\")\n", + "\n", + "# loop through our validation data and output the labels\n", + "for images, labels in valid_data_loader:\n", + " print(\"The labels: \",labels)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CUDA is available and training on GPU ...\n" + ] + } + ], + "source": [ + "\n", + "# Define model\n", + "model = LuekemiaNet()\n", + "# check if CUDA is available\n", + "train_on_gpu = torch.cuda.is_available()\n", + "# Move our model to CUDA for gpu training\n", + "model.cuda()\n", + "\n", + "\n", + "if not train_on_gpu:\n", + " print('CUDA is not available and training on CPU ...')\n", + "else:\n", + " print('CUDA is available and training on GPU ...')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# Cross entropy loss function\n", + "criterion = nn.CrossEntropyLoss()\n", + "# specify optimizer (stochastic gradient descent) and learning rate = 0.001\n", + "optimizer = optim.Adam(model.parameters(), weight_decay=decay, lr=learn_rate)\n", + "# scheduler = CyclicLR(optimizer, base_lr=lr, max_lr=0.01, step_size=5, mode='triangular2')\n", + "scheduler = optim.lr_scheduler.StepLR(optimizer, step_size=7, gamma=helper.config[\"classifier\"][\"model_params\"][\"gamma\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2020-12-31 03:09:27,061 - Model - INFO - Epoch 1/10\n", + "2020-12-31 03:09:27,091 - Model - INFO - ----------\n", + "2020-12-31 03:09:38,622 - Model - INFO - Train loss: 0.5225205793976784 Accuracy: 0.7341772317886353\n", + "2020-12-31 03:09:39,573 - Model - INFO - Valid loss: 0.7080000042915344 Accuracy: 0.5555555820465088\n", + "\n", + "2020-12-31 03:09:39,761 - Model - INFO - Epoch 2/10\n", + "2020-12-31 03:09:39,774 - Model - INFO - ----------\n", + "2020-12-31 03:09:47,664 - Model - INFO - Train loss: 0.3280406277626753 Accuracy: 0.8607594966888428\n", + "2020-12-31 03:09:48,575 - Model - INFO - Valid loss: 0.8643777370452881 Accuracy: 0.5555555820465088\n", + "\n", + "2020-12-31 03:09:48,645 - Model - INFO - Epoch 3/10\n", + "2020-12-31 03:09:48,651 - Model - INFO - ----------\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "--- Logging error ---\n", + "Traceback (most recent call last):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 69, in emit\n", + " self.doRollover()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 393, in doRollover\n", + " self.rotate(self.baseFilename, dfn)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 110, in rotate\n", + " os.rename(source, dest)\n", + "PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log' -> 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log.2020-12-30_00'\n", + "Call stack:\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 193, in _run_module_as_main\n", + " \"__main__\", mod_spec)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 85, in _run_code\n", + " exec(code, run_globals)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py\", line 16, in <module>\n", + " app.launch_new_instance()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\traitlets\\config\\application.py\", line 658, in launch_instance\n", + " app.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelapp.py\", line 505, in start\n", + " self.io_loop.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\platform\\asyncio.py\", line 148, in start\n", + " self.asyncio_loop.run_forever()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 539, in run_forever\n", + " self._run_once()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 1775, in _run_once\n", + " handle._run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\events.py\", line 88, in _run\n", + " self._context.run(self._callback, *self._args)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 690, in <lambda>\n", + " lambda f: self._run_callback(functools.partial(callback, future))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 743, in _run_callback\n", + " ret = callback()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 787, in inner\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 378, in dispatch_queue\n", + " yield self.process_one()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 225, in wrapper\n", + " runner = Runner(result, future, yielded)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 714, in __init__\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 365, in process_one\n", + " yield gen.maybe_future(dispatch(*args))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 272, in dispatch_shell\n", + " yield gen.maybe_future(handler(stream, idents, msg))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 542, in execute_request\n", + " user_expressions, allow_stdin,\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\ipkernel.py\", line 294, in do_execute\n", + " res = shell.run_cell(code, store_history=store_history, silent=silent)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\zmqshell.py\", line 536, in run_cell\n", + " return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2854, in run_cell\n", + " raw_cell, store_history, silent, shell_futures)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2880, in _run_cell\n", + " return runner(coro)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\async_helpers.py\", line 68, in _pseudo_sync_runner\n", + " coro.send(None)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3057, in run_cell_async\n", + " interactivity=interactivity, compiler=compiler, result=result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3248, in run_ast_nodes\n", + " if (await self.run_code(code, result, async_=asy)):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3325, in run_code\n", + " exec(code_obj, self.user_global_ns, self.user_ns)\n", + " File \"<ipython-input-9-afcd5a747e46>\", line 7, in <module>\n", + " train_on_gpu=True, n_epochs=epochs)\n", + " File \"C:\\Peter Moss AML Leukemia Research\\ALL-PyTorch-2020\\Classifier\\Classes\\Model_2020.py\", line 152, in learner\n", + " helper.logger.info(f'Epoch {epoch + 1}/{n_epochs}')\n", + "Message: 'Epoch 1/10'\n", + "Arguments: ()\n", + "--- Logging error ---\n", + "Traceback (most recent call last):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 69, in emit\n", + " self.doRollover()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 393, in doRollover\n", + " self.rotate(self.baseFilename, dfn)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 110, in rotate\n", + " os.rename(source, dest)\n", + "PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log' -> 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log.2020-12-30_00'\n", + "Call stack:\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 193, in _run_module_as_main\n", + " \"__main__\", mod_spec)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 85, in _run_code\n", + " exec(code, run_globals)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py\", line 16, in <module>\n", + " app.launch_new_instance()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\traitlets\\config\\application.py\", line 658, in launch_instance\n", + " app.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelapp.py\", line 505, in start\n", + " self.io_loop.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\platform\\asyncio.py\", line 148, in start\n", + " self.asyncio_loop.run_forever()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 539, in run_forever\n", + " self._run_once()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 1775, in _run_once\n", + " handle._run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\events.py\", line 88, in _run\n", + " self._context.run(self._callback, *self._args)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 690, in <lambda>\n", + " lambda f: self._run_callback(functools.partial(callback, future))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 743, in _run_callback\n", + " ret = callback()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 787, in inner\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 378, in dispatch_queue\n", + " yield self.process_one()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 225, in wrapper\n", + " runner = Runner(result, future, yielded)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 714, in __init__\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 365, in process_one\n", + " yield gen.maybe_future(dispatch(*args))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 272, in dispatch_shell\n", + " yield gen.maybe_future(handler(stream, idents, msg))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 542, in execute_request\n", + " user_expressions, allow_stdin,\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\ipkernel.py\", line 294, in do_execute\n", + " res = shell.run_cell(code, store_history=store_history, silent=silent)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\zmqshell.py\", line 536, in run_cell\n", + " return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2854, in run_cell\n", + " raw_cell, store_history, silent, shell_futures)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2880, in _run_cell\n", + " return runner(coro)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\async_helpers.py\", line 68, in _pseudo_sync_runner\n", + " coro.send(None)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3057, in run_cell_async\n", + " interactivity=interactivity, compiler=compiler, result=result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3248, in run_ast_nodes\n", + " if (await self.run_code(code, result, async_=asy)):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3325, in run_code\n", + " exec(code_obj, self.user_global_ns, self.user_ns)\n", + " File \"<ipython-input-9-afcd5a747e46>\", line 7, in <module>\n", + " train_on_gpu=True, n_epochs=epochs)\n", + " File \"C:\\Peter Moss AML Leukemia Research\\ALL-PyTorch-2020\\Classifier\\Classes\\Model_2020.py\", line 153, in learner\n", + " helper.logger.info('-' * 10)\n", + "Message: '----------'\n", + "Arguments: ()\n", + "--- Logging error ---\n", + "Traceback (most recent call last):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 69, in emit\n", + " self.doRollover()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 393, in doRollover\n", + " self.rotate(self.baseFilename, dfn)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 110, in rotate\n", + " os.rename(source, dest)\n", + "PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log' -> 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log.2020-12-30_00'\n", + "Call stack:\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 193, in _run_module_as_main\n", + " \"__main__\", mod_spec)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 85, in _run_code\n", + " exec(code, run_globals)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py\", line 16, in <module>\n", + " app.launch_new_instance()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\traitlets\\config\\application.py\", line 658, in launch_instance\n", + " app.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelapp.py\", line 505, in start\n", + " self.io_loop.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\platform\\asyncio.py\", line 148, in start\n", + " self.asyncio_loop.run_forever()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 539, in run_forever\n", + " self._run_once()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 1775, in _run_once\n", + " handle._run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\events.py\", line 88, in _run\n", + " self._context.run(self._callback, *self._args)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 690, in <lambda>\n", + " lambda f: self._run_callback(functools.partial(callback, future))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 743, in _run_callback\n", + " ret = callback()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 787, in inner\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 378, in dispatch_queue\n", + " yield self.process_one()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 225, in wrapper\n", + " runner = Runner(result, future, yielded)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 714, in __init__\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 365, in process_one\n", + " yield gen.maybe_future(dispatch(*args))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 272, in dispatch_shell\n", + " yield gen.maybe_future(handler(stream, idents, msg))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 542, in execute_request\n", + " user_expressions, allow_stdin,\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\ipkernel.py\", line 294, in do_execute\n", + " res = shell.run_cell(code, store_history=store_history, silent=silent)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\zmqshell.py\", line 536, in run_cell\n", + " return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2854, in run_cell\n", + " raw_cell, store_history, silent, shell_futures)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2880, in _run_cell\n", + " return runner(coro)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\async_helpers.py\", line 68, in _pseudo_sync_runner\n", + " coro.send(None)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3057, in run_cell_async\n", + " interactivity=interactivity, compiler=compiler, result=result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3248, in run_ast_nodes\n", + " if (await self.run_code(code, result, async_=asy)):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3325, in run_code\n", + " exec(code_obj, self.user_global_ns, self.user_ns)\n", + " File \"<ipython-input-9-afcd5a747e46>\", line 7, in <module>\n", + " train_on_gpu=True, n_epochs=epochs)\n", + " File \"C:\\Peter Moss AML Leukemia Research\\ALL-PyTorch-2020\\Classifier\\Classes\\Model_2020.py\", line 165, in learner\n", + " helper.logger.info(f'Train loss: {train_loss} Accuracy: {train_acc}')\n", + "Message: 'Train loss: 0.5225205793976784 Accuracy: 0.7341772317886353'\n", + "Arguments: ()\n", + "--- Logging error ---\n", + "Traceback (most recent call last):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 69, in emit\n", + " self.doRollover()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 393, in doRollover\n", + " self.rotate(self.baseFilename, dfn)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 110, in rotate\n", + " os.rename(source, dest)\n", + "PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log' -> 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log.2020-12-30_00'\n", + "Call stack:\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 193, in _run_module_as_main\n", + " \"__main__\", mod_spec)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 85, in _run_code\n", + " exec(code, run_globals)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py\", line 16, in <module>\n", + " app.launch_new_instance()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\traitlets\\config\\application.py\", line 658, in launch_instance\n", + " app.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelapp.py\", line 505, in start\n", + " self.io_loop.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\platform\\asyncio.py\", line 148, in start\n", + " self.asyncio_loop.run_forever()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 539, in run_forever\n", + " self._run_once()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 1775, in _run_once\n", + " handle._run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\events.py\", line 88, in _run\n", + " self._context.run(self._callback, *self._args)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 690, in <lambda>\n", + " lambda f: self._run_callback(functools.partial(callback, future))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 743, in _run_callback\n", + " ret = callback()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 787, in inner\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 378, in dispatch_queue\n", + " yield self.process_one()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 225, in wrapper\n", + " runner = Runner(result, future, yielded)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 714, in __init__\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 365, in process_one\n", + " yield gen.maybe_future(dispatch(*args))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 272, in dispatch_shell\n", + " yield gen.maybe_future(handler(stream, idents, msg))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 542, in execute_request\n", + " user_expressions, allow_stdin,\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\ipkernel.py\", line 294, in do_execute\n", + " res = shell.run_cell(code, store_history=store_history, silent=silent)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\zmqshell.py\", line 536, in run_cell\n", + " return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2854, in run_cell\n", + " raw_cell, store_history, silent, shell_futures)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2880, in _run_cell\n", + " return runner(coro)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\async_helpers.py\", line 68, in _pseudo_sync_runner\n", + " coro.send(None)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3057, in run_cell_async\n", + " interactivity=interactivity, compiler=compiler, result=result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3248, in run_ast_nodes\n", + " if (await self.run_code(code, result, async_=asy)):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3325, in run_code\n", + " exec(code_obj, self.user_global_ns, self.user_ns)\n", + " File \"<ipython-input-9-afcd5a747e46>\", line 7, in <module>\n", + " train_on_gpu=True, n_epochs=epochs)\n", + " File \"C:\\Peter Moss AML Leukemia Research\\ALL-PyTorch-2020\\Classifier\\Classes\\Model_2020.py\", line 175, in learner\n", + " helper.logger.info(f'Valid loss: {val_loss} Accuracy: {val_acc}')\n", + "Message: 'Valid loss: 0.7080000042915344 Accuracy: 0.5555555820465088'\n", + "Arguments: ()\n", + "--- Logging error ---\n", + "Traceback (most recent call last):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 69, in emit\n", + " self.doRollover()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 393, in doRollover\n", + " self.rotate(self.baseFilename, dfn)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 110, in rotate\n", + " os.rename(source, dest)\n", + "PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log' -> 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log.2020-12-30_00'\n", + "Call stack:\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 193, in _run_module_as_main\n", + " \"__main__\", mod_spec)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 85, in _run_code\n", + " exec(code, run_globals)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py\", line 16, in <module>\n", + " app.launch_new_instance()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\traitlets\\config\\application.py\", line 658, in launch_instance\n", + " app.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelapp.py\", line 505, in start\n", + " self.io_loop.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\platform\\asyncio.py\", line 148, in start\n", + " self.asyncio_loop.run_forever()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 539, in run_forever\n", + " self._run_once()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 1775, in _run_once\n", + " handle._run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\events.py\", line 88, in _run\n", + " self._context.run(self._callback, *self._args)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 690, in <lambda>\n", + " lambda f: self._run_callback(functools.partial(callback, future))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 743, in _run_callback\n", + " ret = callback()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 787, in inner\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 378, in dispatch_queue\n", + " yield self.process_one()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 225, in wrapper\n", + " runner = Runner(result, future, yielded)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 714, in __init__\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 365, in process_one\n", + " yield gen.maybe_future(dispatch(*args))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 272, in dispatch_shell\n", + " yield gen.maybe_future(handler(stream, idents, msg))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 542, in execute_request\n", + " user_expressions, allow_stdin,\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\ipkernel.py\", line 294, in do_execute\n", + " res = shell.run_cell(code, store_history=store_history, silent=silent)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\zmqshell.py\", line 536, in run_cell\n", + " return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2854, in run_cell\n", + " raw_cell, store_history, silent, shell_futures)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2880, in _run_cell\n", + " return runner(coro)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\async_helpers.py\", line 68, in _pseudo_sync_runner\n", + " coro.send(None)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3057, in run_cell_async\n", + " interactivity=interactivity, compiler=compiler, result=result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3248, in run_ast_nodes\n", + " if (await self.run_code(code, result, async_=asy)):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3325, in run_code\n", + " exec(code_obj, self.user_global_ns, self.user_ns)\n", + " File \"<ipython-input-9-afcd5a747e46>\", line 7, in <module>\n", + " train_on_gpu=True, n_epochs=epochs)\n", + " File \"C:\\Peter Moss AML Leukemia Research\\ALL-PyTorch-2020\\Classifier\\Classes\\Model_2020.py\", line 152, in learner\n", + " helper.logger.info(f'Epoch {epoch + 1}/{n_epochs}')\n", + "Message: 'Epoch 2/10'\n", + "Arguments: ()\n", + "--- Logging error ---\n", + "Traceback (most recent call last):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 69, in emit\n", + " self.doRollover()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 393, in doRollover\n", + " self.rotate(self.baseFilename, dfn)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 110, in rotate\n", + " os.rename(source, dest)\n", + "PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log' -> 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log.2020-12-30_00'\n", + "Call stack:\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 193, in _run_module_as_main\n", + " \"__main__\", mod_spec)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 85, in _run_code\n", + " exec(code, run_globals)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py\", line 16, in <module>\n", + " app.launch_new_instance()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\traitlets\\config\\application.py\", line 658, in launch_instance\n", + " app.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelapp.py\", line 505, in start\n", + " self.io_loop.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\platform\\asyncio.py\", line 148, in start\n", + " self.asyncio_loop.run_forever()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 539, in run_forever\n", + " self._run_once()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 1775, in _run_once\n", + " handle._run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\events.py\", line 88, in _run\n", + " self._context.run(self._callback, *self._args)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 690, in <lambda>\n", + " lambda f: self._run_callback(functools.partial(callback, future))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 743, in _run_callback\n", + " ret = callback()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 787, in inner\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 378, in dispatch_queue\n", + " yield self.process_one()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 225, in wrapper\n", + " runner = Runner(result, future, yielded)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 714, in __init__\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 365, in process_one\n", + " yield gen.maybe_future(dispatch(*args))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 272, in dispatch_shell\n", + " yield gen.maybe_future(handler(stream, idents, msg))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 542, in execute_request\n", + " user_expressions, allow_stdin,\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\ipkernel.py\", line 294, in do_execute\n", + " res = shell.run_cell(code, store_history=store_history, silent=silent)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\zmqshell.py\", line 536, in run_cell\n", + " return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2854, in run_cell\n", + " raw_cell, store_history, silent, shell_futures)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2880, in _run_cell\n", + " return runner(coro)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\async_helpers.py\", line 68, in _pseudo_sync_runner\n", + " coro.send(None)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3057, in run_cell_async\n", + " interactivity=interactivity, compiler=compiler, result=result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3248, in run_ast_nodes\n", + " if (await self.run_code(code, result, async_=asy)):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3325, in run_code\n", + " exec(code_obj, self.user_global_ns, self.user_ns)\n", + " File \"<ipython-input-9-afcd5a747e46>\", line 7, in <module>\n", + " train_on_gpu=True, n_epochs=epochs)\n", + " File \"C:\\Peter Moss AML Leukemia Research\\ALL-PyTorch-2020\\Classifier\\Classes\\Model_2020.py\", line 153, in learner\n", + " helper.logger.info('-' * 10)\n", + "Message: '----------'\n", + "Arguments: ()\n", + "--- Logging error ---\n", + "Traceback (most recent call last):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 69, in emit\n", + " self.doRollover()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 393, in doRollover\n", + " self.rotate(self.baseFilename, dfn)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 110, in rotate\n", + " os.rename(source, dest)\n", + "PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log' -> 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log.2020-12-30_00'\n", + "Call stack:\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 193, in _run_module_as_main\n", + " \"__main__\", mod_spec)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 85, in _run_code\n", + " exec(code, run_globals)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py\", line 16, in <module>\n", + " app.launch_new_instance()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\traitlets\\config\\application.py\", line 658, in launch_instance\n", + " app.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelapp.py\", line 505, in start\n", + " self.io_loop.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\platform\\asyncio.py\", line 148, in start\n", + " self.asyncio_loop.run_forever()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 539, in run_forever\n", + " self._run_once()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 1775, in _run_once\n", + " handle._run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\events.py\", line 88, in _run\n", + " self._context.run(self._callback, *self._args)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 690, in <lambda>\n", + " lambda f: self._run_callback(functools.partial(callback, future))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 743, in _run_callback\n", + " ret = callback()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 787, in inner\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 378, in dispatch_queue\n", + " yield self.process_one()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 225, in wrapper\n", + " runner = Runner(result, future, yielded)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 714, in __init__\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 365, in process_one\n", + " yield gen.maybe_future(dispatch(*args))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 272, in dispatch_shell\n", + " yield gen.maybe_future(handler(stream, idents, msg))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 542, in execute_request\n", + " user_expressions, allow_stdin,\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\ipkernel.py\", line 294, in do_execute\n", + " res = shell.run_cell(code, store_history=store_history, silent=silent)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\zmqshell.py\", line 536, in run_cell\n", + " return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2854, in run_cell\n", + " raw_cell, store_history, silent, shell_futures)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2880, in _run_cell\n", + " return runner(coro)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\async_helpers.py\", line 68, in _pseudo_sync_runner\n", + " coro.send(None)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3057, in run_cell_async\n", + " interactivity=interactivity, compiler=compiler, result=result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3248, in run_ast_nodes\n", + " if (await self.run_code(code, result, async_=asy)):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3325, in run_code\n", + " exec(code_obj, self.user_global_ns, self.user_ns)\n", + " File \"<ipython-input-9-afcd5a747e46>\", line 7, in <module>\n", + " train_on_gpu=True, n_epochs=epochs)\n", + " File \"C:\\Peter Moss AML Leukemia Research\\ALL-PyTorch-2020\\Classifier\\Classes\\Model_2020.py\", line 165, in learner\n", + " helper.logger.info(f'Train loss: {train_loss} Accuracy: {train_acc}')\n", + "Message: 'Train loss: 0.3280406277626753 Accuracy: 0.8607594966888428'\n", + "Arguments: ()\n", + "--- Logging error ---\n", + "Traceback (most recent call last):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 69, in emit\n", + " self.doRollover()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 393, in doRollover\n", + " self.rotate(self.baseFilename, dfn)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 110, in rotate\n", + " os.rename(source, dest)\n", + "PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log' -> 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log.2020-12-30_00'\n", + "Call stack:\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 193, in _run_module_as_main\n", + " \"__main__\", mod_spec)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 85, in _run_code\n", + " exec(code, run_globals)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py\", line 16, in <module>\n", + " app.launch_new_instance()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\traitlets\\config\\application.py\", line 658, in launch_instance\n", + " app.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelapp.py\", line 505, in start\n", + " self.io_loop.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\platform\\asyncio.py\", line 148, in start\n", + " self.asyncio_loop.run_forever()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 539, in run_forever\n", + " self._run_once()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 1775, in _run_once\n", + " handle._run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\events.py\", line 88, in _run\n", + " self._context.run(self._callback, *self._args)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 690, in <lambda>\n", + " lambda f: self._run_callback(functools.partial(callback, future))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 743, in _run_callback\n", + " ret = callback()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 787, in inner\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 378, in dispatch_queue\n", + " yield self.process_one()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 225, in wrapper\n", + " runner = Runner(result, future, yielded)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 714, in __init__\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 365, in process_one\n", + " yield gen.maybe_future(dispatch(*args))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 272, in dispatch_shell\n", + " yield gen.maybe_future(handler(stream, idents, msg))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 542, in execute_request\n", + " user_expressions, allow_stdin,\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\ipkernel.py\", line 294, in do_execute\n", + " res = shell.run_cell(code, store_history=store_history, silent=silent)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\zmqshell.py\", line 536, in run_cell\n", + " return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2854, in run_cell\n", + " raw_cell, store_history, silent, shell_futures)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2880, in _run_cell\n", + " return runner(coro)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\async_helpers.py\", line 68, in _pseudo_sync_runner\n", + " coro.send(None)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3057, in run_cell_async\n", + " interactivity=interactivity, compiler=compiler, result=result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3248, in run_ast_nodes\n", + " if (await self.run_code(code, result, async_=asy)):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3325, in run_code\n", + " exec(code_obj, self.user_global_ns, self.user_ns)\n", + " File \"<ipython-input-9-afcd5a747e46>\", line 7, in <module>\n", + " train_on_gpu=True, n_epochs=epochs)\n", + " File \"C:\\Peter Moss AML Leukemia Research\\ALL-PyTorch-2020\\Classifier\\Classes\\Model_2020.py\", line 175, in learner\n", + " helper.logger.info(f'Valid loss: {val_loss} Accuracy: {val_acc}')\n", + "Message: 'Valid loss: 0.8643777370452881 Accuracy: 0.5555555820465088'\n", + "Arguments: ()\n", + "--- Logging error ---\n", + "Traceback (most recent call last):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 69, in emit\n", + " self.doRollover()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 393, in doRollover\n", + " self.rotate(self.baseFilename, dfn)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 110, in rotate\n", + " os.rename(source, dest)\n", + "PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log' -> 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log.2020-12-30_00'\n", + "Call stack:\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 193, in _run_module_as_main\n", + " \"__main__\", mod_spec)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 85, in _run_code\n", + " exec(code, run_globals)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py\", line 16, in <module>\n", + " app.launch_new_instance()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\traitlets\\config\\application.py\", line 658, in launch_instance\n", + " app.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelapp.py\", line 505, in start\n", + " self.io_loop.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\platform\\asyncio.py\", line 148, in start\n", + " self.asyncio_loop.run_forever()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 539, in run_forever\n", + " self._run_once()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 1775, in _run_once\n", + " handle._run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\events.py\", line 88, in _run\n", + " self._context.run(self._callback, *self._args)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 690, in <lambda>\n", + " lambda f: self._run_callback(functools.partial(callback, future))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 743, in _run_callback\n", + " ret = callback()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 787, in inner\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 378, in dispatch_queue\n", + " yield self.process_one()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 225, in wrapper\n", + " runner = Runner(result, future, yielded)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 714, in __init__\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 365, in process_one\n", + " yield gen.maybe_future(dispatch(*args))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 272, in dispatch_shell\n", + " yield gen.maybe_future(handler(stream, idents, msg))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 542, in execute_request\n", + " user_expressions, allow_stdin,\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\ipkernel.py\", line 294, in do_execute\n", + " res = shell.run_cell(code, store_history=store_history, silent=silent)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\zmqshell.py\", line 536, in run_cell\n", + " return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2854, in run_cell\n", + " raw_cell, store_history, silent, shell_futures)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2880, in _run_cell\n", + " return runner(coro)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\async_helpers.py\", line 68, in _pseudo_sync_runner\n", + " coro.send(None)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3057, in run_cell_async\n", + " interactivity=interactivity, compiler=compiler, result=result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3248, in run_ast_nodes\n", + " if (await self.run_code(code, result, async_=asy)):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3325, in run_code\n", + " exec(code_obj, self.user_global_ns, self.user_ns)\n", + " File \"<ipython-input-9-afcd5a747e46>\", line 7, in <module>\n", + " train_on_gpu=True, n_epochs=epochs)\n", + " File \"C:\\Peter Moss AML Leukemia Research\\ALL-PyTorch-2020\\Classifier\\Classes\\Model_2020.py\", line 152, in learner\n", + " helper.logger.info(f'Epoch {epoch + 1}/{n_epochs}')\n", + "Message: 'Epoch 3/10'\n", + "Arguments: ()\n", + "--- Logging error ---\n", + "Traceback (most recent call last):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 69, in emit\n", + " self.doRollover()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 393, in doRollover\n", + " self.rotate(self.baseFilename, dfn)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\logging\\handlers.py\", line 110, in rotate\n", + " os.rename(source, dest)\n", + "PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log' -> 'C:\\\\Peter Moss AML Leukemia Research\\\\ALL-PyTorch-2020\\\\Classifier\\\\Logs\\\\all.log.2020-12-30_00'\n", + "Call stack:\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 193, in _run_module_as_main\n", + " \"__main__\", mod_spec)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\runpy.py\", line 85, in _run_code\n", + " exec(code, run_globals)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py\", line 16, in <module>\n", + " app.launch_new_instance()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\traitlets\\config\\application.py\", line 658, in launch_instance\n", + " app.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelapp.py\", line 505, in start\n", + " self.io_loop.start()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\platform\\asyncio.py\", line 148, in start\n", + " self.asyncio_loop.run_forever()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 539, in run_forever\n", + " self._run_once()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\base_events.py\", line 1775, in _run_once\n", + " handle._run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\asyncio\\events.py\", line 88, in _run\n", + " self._context.run(self._callback, *self._args)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 690, in <lambda>\n", + " lambda f: self._run_callback(functools.partial(callback, future))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\ioloop.py\", line 743, in _run_callback\n", + " ret = callback()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 787, in inner\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 378, in dispatch_queue\n", + " yield self.process_one()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 225, in wrapper\n", + " runner = Runner(result, future, yielded)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 714, in __init__\n", + " self.run()\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 748, in run\n", + " yielded = self.gen.send(value)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 365, in process_one\n", + " yield gen.maybe_future(dispatch(*args))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 272, in dispatch_shell\n", + " yield gen.maybe_future(handler(stream, idents, msg))\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\kernelbase.py\", line 542, in execute_request\n", + " user_expressions, allow_stdin,\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\tornado\\gen.py\", line 209, in wrapper\n", + " yielded = next(result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\ipkernel.py\", line 294, in do_execute\n", + " res = shell.run_cell(code, store_history=store_history, silent=silent)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\ipykernel\\zmqshell.py\", line 536, in run_cell\n", + " return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2854, in run_cell\n", + " raw_cell, store_history, silent, shell_futures)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 2880, in _run_cell\n", + " return runner(coro)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\async_helpers.py\", line 68, in _pseudo_sync_runner\n", + " coro.send(None)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3057, in run_cell_async\n", + " interactivity=interactivity, compiler=compiler, result=result)\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3248, in run_ast_nodes\n", + " if (await self.run_code(code, result, async_=asy)):\n", + " File \"C:\\Users\\Allen\\Anaconda3\\lib\\site-packages\\IPython\\core\\interactiveshell.py\", line 3325, in run_code\n", + " exec(code_obj, self.user_global_ns, self.user_ns)\n", + " File \"<ipython-input-9-afcd5a747e46>\", line 7, in <module>\n", + " train_on_gpu=True, n_epochs=epochs)\n", + " File \"C:\\Peter Moss AML Leukemia Research\\ALL-PyTorch-2020\\Classifier\\Classes\\Model_2020.py\", line 153, in learner\n", + " helper.logger.info('-' * 10)\n", + "Message: '----------'\n", + "Arguments: ()\n" + ] + }, + { + "ename": "KeyboardInterrupt", + "evalue": "", + "output_type": "error", + "traceback": [ + "\u001B[1;31m---------------------------------------------------------------------------\u001B[0m", + "\u001B[1;31mKeyboardInterrupt\u001B[0m Traceback (most recent call last)", + "\u001B[1;32m<ipython-input-9-afcd5a747e46>\u001B[0m in \u001B[0;36m<module>\u001B[1;34m\u001B[0m\n\u001B[0;32m 5\u001B[0m \u001B[0mcriterion\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mtrain_size\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 6\u001B[0m \u001B[0mvalid_size\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m----> 7\u001B[1;33m train_on_gpu=True, n_epochs=epochs)\n\u001B[0m\u001B[0;32m 8\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n", + "\u001B[1;32mC:\\Peter Moss AML Leukemia Research\\ALL-PyTorch-2020\\Classifier\\Classes\\Model_2020.py\u001B[0m in \u001B[0;36mlearner\u001B[1;34m(model, train_data_loader, valid_data_loader, optimizer, scheduler, loss_function, trainset_size, validset_size, train_on_gpu, n_epochs)\u001B[0m\n\u001B[0;32m 160\u001B[0m \u001B[0mscheduler\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 161\u001B[0m \u001B[0mtrainset_size\u001B[0m\u001B[1;33m,\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m--> 162\u001B[1;33m \u001B[0mtrain_on_gpu\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 163\u001B[0m )\n\u001B[0;32m 164\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n", + "\u001B[1;32mC:\\Peter Moss AML Leukemia Research\\ALL-PyTorch-2020\\Classifier\\Classes\\Model_2020.py\u001B[0m in \u001B[0;36mtrain_epoch\u001B[1;34m(model, data_loader, loss_function, optimizer, scheduler, trainset_size, train_on_gpu)\u001B[0m\n\u001B[0;32m 73\u001B[0m \u001B[0mcorrect_predictions\u001B[0m \u001B[1;33m=\u001B[0m \u001B[1;36m0\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 74\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m---> 75\u001B[1;33m \u001B[1;32mfor\u001B[0m \u001B[0mi\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mdataset\u001B[0m \u001B[1;32min\u001B[0m \u001B[0menumerate\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mdata_loader\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 76\u001B[0m \u001B[0minputs\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mlabels\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mdataset\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 77\u001B[0m \u001B[1;32mif\u001B[0m \u001B[0mtrain_on_gpu\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n", + "\u001B[1;32m~\\Anaconda3\\lib\\site-packages\\torch\\utils\\data\\dataloader.py\u001B[0m in \u001B[0;36m__next__\u001B[1;34m(self)\u001B[0m\n\u001B[0;32m 344\u001B[0m \u001B[1;32mdef\u001B[0m \u001B[0m__next__\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 345\u001B[0m \u001B[0mindex\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0m_next_index\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;33m)\u001B[0m \u001B[1;31m# may raise StopIteration\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m--> 346\u001B[1;33m \u001B[0mdata\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0m_dataset_fetcher\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mfetch\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mindex\u001B[0m\u001B[1;33m)\u001B[0m \u001B[1;31m# may raise StopIteration\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 347\u001B[0m \u001B[1;32mif\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0m_pin_memory\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 348\u001B[0m \u001B[0mdata\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0m_utils\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mpin_memory\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mpin_memory\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mdata\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n", + "\u001B[1;32m~\\Anaconda3\\lib\\site-packages\\torch\\utils\\data\\_utils\\fetch.py\u001B[0m in \u001B[0;36mfetch\u001B[1;34m(self, possibly_batched_index)\u001B[0m\n\u001B[0;32m 42\u001B[0m \u001B[1;32mdef\u001B[0m \u001B[0mfetch\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mpossibly_batched_index\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 43\u001B[0m \u001B[1;32mif\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mauto_collation\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m---> 44\u001B[1;33m \u001B[0mdata\u001B[0m \u001B[1;33m=\u001B[0m \u001B[1;33m[\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mdataset\u001B[0m\u001B[1;33m[\u001B[0m\u001B[0midx\u001B[0m\u001B[1;33m]\u001B[0m \u001B[1;32mfor\u001B[0m \u001B[0midx\u001B[0m \u001B[1;32min\u001B[0m \u001B[0mpossibly_batched_index\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 45\u001B[0m \u001B[1;32melse\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 46\u001B[0m \u001B[0mdata\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mdataset\u001B[0m\u001B[1;33m[\u001B[0m\u001B[0mpossibly_batched_index\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n", + "\u001B[1;32m~\\Anaconda3\\lib\\site-packages\\torch\\utils\\data\\_utils\\fetch.py\u001B[0m in \u001B[0;36m<listcomp>\u001B[1;34m(.0)\u001B[0m\n\u001B[0;32m 42\u001B[0m \u001B[1;32mdef\u001B[0m \u001B[0mfetch\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mpossibly_batched_index\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 43\u001B[0m \u001B[1;32mif\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mauto_collation\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m---> 44\u001B[1;33m \u001B[0mdata\u001B[0m \u001B[1;33m=\u001B[0m \u001B[1;33m[\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mdataset\u001B[0m\u001B[1;33m[\u001B[0m\u001B[0midx\u001B[0m\u001B[1;33m]\u001B[0m \u001B[1;32mfor\u001B[0m \u001B[0midx\u001B[0m \u001B[1;32min\u001B[0m \u001B[0mpossibly_batched_index\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 45\u001B[0m \u001B[1;32melse\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 46\u001B[0m \u001B[0mdata\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mdataset\u001B[0m\u001B[1;33m[\u001B[0m\u001B[0mpossibly_batched_index\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n", + "\u001B[1;32mC:\\Peter Moss AML Leukemia Research\\ALL-PyTorch-2020\\Classifier\\Classes\\Data.py\u001B[0m in \u001B[0;36m__getitem__\u001B[1;34m(self, index)\u001B[0m\n\u001B[0;32m 46\u001B[0m \u001B[0mimg_name\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mlabel\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mdf\u001B[0m\u001B[1;33m[\u001B[0m\u001B[0mindex\u001B[0m\u001B[1;33m]\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 47\u001B[0m \u001B[0mimg_path\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mos\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mpath\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mjoin\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mdata_dir\u001B[0m\u001B[1;33m,\u001B[0m \u001B[0mimg_name\u001B[0m \u001B[1;33m+\u001B[0m \u001B[1;34m'.jpg'\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m---> 48\u001B[1;33m \u001B[0mimage\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mImage\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mopen\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mimg_path\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 49\u001B[0m \u001B[1;32mif\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mtransform\u001B[0m \u001B[1;32mis\u001B[0m \u001B[1;32mnot\u001B[0m \u001B[1;32mNone\u001B[0m\u001B[1;33m:\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 50\u001B[0m \u001B[0mimage\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mself\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mtransform\u001B[0m\u001B[1;33m(\u001B[0m\u001B[0mimage\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n", + "\u001B[1;32m~\\Anaconda3\\lib\\site-packages\\PIL\\Image.py\u001B[0m in \u001B[0;36mopen\u001B[1;34m(fp, mode)\u001B[0m\n\u001B[0;32m 2777\u001B[0m \u001B[0mexclusive_fp\u001B[0m \u001B[1;33m=\u001B[0m \u001B[1;32mTrue\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 2778\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n\u001B[1;32m-> 2779\u001B[1;33m \u001B[0mprefix\u001B[0m \u001B[1;33m=\u001B[0m \u001B[0mfp\u001B[0m\u001B[1;33m.\u001B[0m\u001B[0mread\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;36m16\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0m\u001B[0;32m 2780\u001B[0m \u001B[1;33m\u001B[0m\u001B[0m\n\u001B[0;32m 2781\u001B[0m \u001B[0mpreinit\u001B[0m\u001B[1;33m(\u001B[0m\u001B[1;33m)\u001B[0m\u001B[1;33m\u001B[0m\u001B[1;33m\u001B[0m\u001B[0m\n", + "\u001B[1;31mKeyboardInterrupt\u001B[0m: " + ] + } + ], + "source": [ + "# begin training\n", + "real_model, history = learner(model, train_data_loader,\n", + " valid_data_loader,\n", + " optimizer, scheduler,\n", + " criterion, train_size,\n", + " valid_size,\n", + " train_on_gpu=True, n_epochs=epochs)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# plot model loss and accuracy\n", + "plot_training_history(history, save_path=acc_loss_png)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Get model prediction\n", + "y_pred, y_test = get_predictions(real_model,valid_data_loader)\n", + "# Get model precision, recall and f1_score\n", + "helper.logger.info(classification_report(y_test, y_pred, target_names=class_name))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Get model confusion matrix\n", + "cm = confusion_matrix(y_test, y_pred)\n", + "confusion_matrix2(cm, class_name,save_path=confusion_png)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "prediction = predict_probability(real_model,validation_transforms, 'C:\\Peter Moss AML Leukemia Research\\ALL-PyTorch-2020\\Classifier\\Model\\Data\\Test\\Im047_0.jpg')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "prediction" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "show_prediction_confidence(prediction, class_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Model Interpretation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#prediction = predict_probability(real_model, validation_transforms, image_path)\n", + "interpret_model(real_model,validation_transforms, image_path, label_idx, use_cpu=True, intrepret_type=\"integrated gradients\")\n", + "interpret_model(real_model,validation_transforms, image_path, label_idx, use_cpu=True, intrepret_type=\"gradient shap\")\n", + "interpret_model(real_model,validation_transforms, image_path, label_idx, use_cpu=True, intrepret_type=\"saliency\")\n", + "\n", + "interpret_model(real_model,validation_transforms, image_path2, label_idx, use_cpu=True, intrepret_type=\"integrated gradients\")\n", + "interpret_model(real_model,validation_transforms, image_path2, label_idx, use_cpu=True, intrepret_type=\"gradient shap\")\n", + "interpret_model(real_model,validation_transforms, image_path2, label_idx, use_cpu=True, intrepret_type=\"saliency\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#train data directory\n", + "test_dir = 'C:/Peter Moss AML Leukemia Research/Dataset/all_test/'\n", + "test_csv = 'C:/Peter Moss AML Leukemia Research/Dataset/test.csv'\n", + "label_csv = pd.read_csv(test_csv)\n", + "testset = LeukemiaDataset(df_data=label_csv, data_dir=test_dir, transform=validation_transforms)\n", + "test_data_loader = DataLoader(testset, batch_size=batch_size, shuffle=True)\n", + "show_predictions(model=real_model, class_names=class_name, test_data_loader=test_data_loader, n_images=6)" + ] + }, + { + "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.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file