From 0fb432cd63bfd0856bb5413cd3ff6fb41b83d7a2 Mon Sep 17 00:00:00 2001 From: Edgar Riba Date: Fri, 7 May 2021 23:51:56 +0200 Subject: [PATCH 01/10] update kornia version and crop functions --- flash/vision/classification/transforms.py | 6 ++---- requirements.txt | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/flash/vision/classification/transforms.py b/flash/vision/classification/transforms.py index 3eff2f4c2c..2406ec9b24 100644 --- a/flash/vision/classification/transforms.py +++ b/flash/vision/classification/transforms.py @@ -37,8 +37,7 @@ def default_train_transforms(image_size: Tuple[int, int]) -> Dict[str, Callable] ), "post_tensor_transform": ApplyToKeys( DefaultDataKeys.INPUT, - # TODO (Edgar): replace with resize once kornia is fixed - K.augmentation.RandomResizedCrop(image_size, scale=(1.0, 1.0), ratio=(1.0, 1.0)), + K.geometry.Resize(image_size), K.augmentation.RandomHorizontalFlip(), ), "per_batch_transform_on_device": ApplyToKeys( @@ -70,8 +69,7 @@ def default_val_transforms(image_size: Tuple[int, int]) -> Dict[str, Callable]: ), "post_tensor_transform": ApplyToKeys( DefaultDataKeys.INPUT, - # TODO (Edgar): replace with resize once kornia is fixed - K.augmentation.RandomResizedCrop(image_size, scale=(1.0, 1.0), ratio=(1.0, 1.0)), + K.geometry.Resize(image_size), ), "per_batch_transform_on_device": ApplyToKeys( DefaultDataKeys.INPUT, diff --git a/requirements.txt b/requirements.txt index bce2efd675..38041c7a90 100644 --- a/requirements.txt +++ b/requirements.txt @@ -16,6 +16,6 @@ rouge-score>=0.0.4 sentencepiece>=0.1.95 filelock # comes with 3rd-party dependency pycocotools>=2.0.2 ; python_version >= "3.7" -kornia==0.5.0 +kornia>=0.5.0 pytorchvideo matplotlib # used by the visualisation callback From 564745b4674a4d6c99f35c922ddb7f51b61c9521 Mon Sep 17 00:00:00 2001 From: Edgar Riba Date: Fri, 7 May 2021 23:57:46 +0200 Subject: [PATCH 02/10] update notebooks --- flash_notebooks/custom_task_tutorial.ipynb | 61 +++++-- flash_notebooks/generic_task.ipynb | 184 ++++++++++++------- flash_notebooks/image_classification.ipynb | 13 +- flash_notebooks/text_classification.ipynb | 203 ++++++++++++++++++--- 4 files changed, 341 insertions(+), 120 deletions(-) diff --git a/flash_notebooks/custom_task_tutorial.ipynb b/flash_notebooks/custom_task_tutorial.ipynb index 93b214ff62..9c28486f60 100644 --- a/flash_notebooks/custom_task_tutorial.ipynb +++ b/flash_notebooks/custom_task_tutorial.ipynb @@ -40,18 +40,21 @@ "metadata": {}, "outputs": [], "source": [ - "from typing import Any, List, Tuple\n", + "from typing import Any, List, Tuple, Dict\n", "\n", "import numpy as np\n", "import torch\n", "from pytorch_lightning import seed_everything\n", "from sklearn import datasets\n", "from sklearn.model_selection import train_test_split\n", - "from torch import nn\n", + "from torch import nn, Tensor\n", "\n", "import flash\n", "from flash.data.auto_dataset import AutoDataset\n", - "from flash.data.process import Postprocess, Preprocess" + "from flash.data.data_source import DataSource\n", + "from flash.data.process import Preprocess\n", + "\n", + "ND = np.ndarray" ] }, { @@ -152,24 +155,43 @@ "metadata": {}, "outputs": [], "source": [ - "class NumpyRegressionPreprocess(Preprocess):\n", + "class NumpyDataSource(DataSource):\n", "\n", - " def load_data(self, data: Tuple[np.ndarray, np.ndarray], dataset: AutoDataset) -> List[Tuple[np.ndarray, float]]:\n", + " def load_data(self, data: Tuple[ND, ND], dataset: AutoDataset) -> List[Tuple[ND, float]]:\n", " if self.training:\n", " dataset.num_inputs = data[0].shape[1]\n", " return [(x, y) for x, y in zip(*data)]\n", "\n", - " def to_tensor_transform(self, sample: Any) -> Tuple[torch.Tensor, torch.Tensor]:\n", + " def predict_load_data(self, data: ND) -> ND:\n", + " return data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "class NumpyPreprocess(Preprocess):\n", + "\n", + " def __init__(self):\n", + " super().__init__(data_sources={\"numpy\": NumpyDataSource()}, default_data_source=\"numpy\")\n", + "\n", + " def to_tensor_transform(self, sample: Any) -> Tuple[Tensor, Tensor]:\n", " x, y = sample\n", " x = torch.from_numpy(x).float()\n", " y = torch.tensor(y, dtype=torch.float)\n", " return x, y\n", "\n", - " def predict_load_data(self, data: np.ndarray) -> np.ndarray:\n", - " return data\n", + " def predict_to_tensor_transform(self, sample: ND) -> ND:\n", + " return torch.from_numpy(sample).float()\n", + "\n", + " def get_state_dict(self) -> Dict[str, Any]:\n", + " return {}\n", "\n", - " def predict_to_tensor_transform(self, sample: np.ndarray) -> np.ndarray:\n", - " return torch.from_numpy(sample).float()\n" + " @classmethod\n", + " def load_state_dict(cls, state_dict: Dict[str, Any], strict: bool):\n", + " return cls()" ] }, { @@ -181,15 +203,16 @@ "class SklearnDataModule(flash.DataModule):\n", "\n", " @classmethod\n", - " def from_dataset(cls, x: np.ndarray, y: np.ndarray, batch_size: int = 64, num_workers: int = 0):\n", + " def from_dataset(cls, x: np.ndarray, y: np.ndarray, preprocess: Preprocess, batch_size: int = 64, num_workers: int = 0):\n", "\n", - " preprocess = NumpyRegressionPreprocess()\n", + " preprocess = preprocess\n", "\n", " x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=.20, random_state=0)\n", "\n", - " dm = cls.from_load_data_inputs(\n", - " train_load_data_input=(x_train, y_train),\n", - " test_load_data_input=(x_test, y_test),\n", + " dm = cls.from_data_source(\n", + " \"numpy\",\n", + " train_data=(x_train, y_train),\n", + " test_data=(x_test, y_test),\n", " preprocess=preprocess,\n", " batch_size=batch_size,\n", " num_workers=num_workers\n", @@ -204,7 +227,8 @@ "metadata": {}, "outputs": [], "source": [ - "datamodule = SklearnDataModule.from_dataset(*datasets.load_diabetes(return_X_y=True))" + "x, y = datasets.load_diabetes(return_X_y=True)\n", + "datamodule = SklearnDataModule.from_dataset(x, y, NumpyPreprocess())" ] }, { @@ -352,9 +376,8 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" + "name": "python385jvsc74a57bd0db7cb6f8b99581485a229201158c5b3d87043825d76fdd729161e90706f71f5a", + "display_name": "Python 3.8.5 64-bit ('.venv')" }, "language_info": { "codemirror_mode": { diff --git a/flash_notebooks/generic_task.ipynb b/flash_notebooks/generic_task.ipynb index 4e7b25e465..ab68e36a6a 100644 --- a/flash_notebooks/generic_task.ipynb +++ b/flash_notebooks/generic_task.ipynb @@ -34,7 +34,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "straight-vision", "metadata": {}, "outputs": [], @@ -45,7 +45,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 1, "id": "foreign-design", "metadata": {}, "outputs": [], @@ -55,12 +55,12 @@ "from torch.utils.data import DataLoader, random_split\n", "from torchvision import datasets, transforms\n", "\n", - "from flash import ClassificationTask" + "from flash.core.classification import ClassificationTask" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 2, "id": "mathematical-barbados", "metadata": {}, "outputs": [], @@ -83,7 +83,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 3, "id": "selective-request", "metadata": {}, "outputs": [], @@ -106,41 +106,10 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 4, "id": "stunning-anime", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Downloading http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz to ./data/MNIST/raw/train-images-idx3-ubyte.gz\n" - ] - }, - { - "ename": "HTTPError", - "evalue": "HTTP Error 503: Service Unavailable", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mHTTPError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdataset\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdatasets\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mMNIST\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'./data'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdownload\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtransform\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtransforms\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mToTensor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", - "\u001b[0;32m~/Documents/GitHub/lightning-flash/.venv/lib/python3.8/site-packages/torchvision/datasets/mnist.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, root, train, transform, target_transform, download)\u001b[0m\n\u001b[1;32m 77\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 78\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mdownload\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 79\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdownload\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 80\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 81\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_check_exists\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/Documents/GitHub/lightning-flash/.venv/lib/python3.8/site-packages/torchvision/datasets/mnist.py\u001b[0m in \u001b[0;36mdownload\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 144\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmd5\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mresources\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 145\u001b[0m \u001b[0mfilename\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrpartition\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'/'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 146\u001b[0;31m \u001b[0mdownload_and_extract_archive\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdownload_root\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mraw_folder\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmd5\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmd5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 147\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 148\u001b[0m \u001b[0;31m# process and save as torch files\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/Documents/GitHub/lightning-flash/.venv/lib/python3.8/site-packages/torchvision/datasets/utils.py\u001b[0m in \u001b[0;36mdownload_and_extract_archive\u001b[0;34m(url, download_root, extract_root, filename, md5, remove_finished)\u001b[0m\n\u001b[1;32m 312\u001b[0m \u001b[0mfilename\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbasename\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0murl\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 313\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 314\u001b[0;31m \u001b[0mdownload_url\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdownload_root\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmd5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 315\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 316\u001b[0m \u001b[0marchive\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjoin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdownload_root\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/Documents/GitHub/lightning-flash/.venv/lib/python3.8/site-packages/torchvision/datasets/utils.py\u001b[0m in \u001b[0;36mdownload_url\u001b[0;34m(url, root, filename, md5, max_redirect_hops)\u001b[0m\n\u001b[1;32m 138\u001b[0m \u001b[0m_urlretrieve\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfpath\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 139\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 140\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 141\u001b[0m \u001b[0;31m# check integrity of downloaded file\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 142\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mcheck_integrity\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmd5\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/Documents/GitHub/lightning-flash/.venv/lib/python3.8/site-packages/torchvision/datasets/utils.py\u001b[0m in \u001b[0;36mdownload_url\u001b[0;34m(url, root, filename, md5, max_redirect_hops)\u001b[0m\n\u001b[1;32m 130\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 131\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Downloading '\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0murl\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m' to '\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mfpath\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 132\u001b[0;31m \u001b[0m_urlretrieve\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfpath\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 133\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0murllib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0merror\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mURLError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mIOError\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0;31m# type: ignore[attr-defined]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 134\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;36m5\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'https'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/Documents/GitHub/lightning-flash/.venv/lib/python3.8/site-packages/torchvision/datasets/utils.py\u001b[0m in \u001b[0;36m_urlretrieve\u001b[0;34m(url, filename, chunk_size)\u001b[0m\n\u001b[1;32m 27\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_urlretrieve\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0murl\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfilename\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mchunk_size\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mint\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m1024\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 28\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilename\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"wb\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mfh\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 29\u001b[0;31m \u001b[0;32mwith\u001b[0m \u001b[0murllib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0murlopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0murllib\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mRequest\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mheaders\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m{\u001b[0m\u001b[0;34m\"User-Agent\"\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mUSER_AGENT\u001b[0m\u001b[0;34m}\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mresponse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 30\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mtqdm\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtotal\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mresponse\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlength\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mpbar\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 31\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mchunk\u001b[0m \u001b[0;32min\u001b[0m \u001b[0miter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mlambda\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mresponse\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mchunk_size\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.pyenv/versions/3.8.5/lib/python3.8/urllib/request.py\u001b[0m in \u001b[0;36murlopen\u001b[0;34m(url, data, timeout, cafile, capath, cadefault, context)\u001b[0m\n\u001b[1;32m 220\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 221\u001b[0m \u001b[0mopener\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_opener\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 222\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mopener\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 223\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 224\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0minstall_opener\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mopener\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.pyenv/versions/3.8.5/lib/python3.8/urllib/request.py\u001b[0m in \u001b[0;36mopen\u001b[0;34m(self, fullurl, data, timeout)\u001b[0m\n\u001b[1;32m 529\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mprocessor\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprocess_response\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprotocol\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 530\u001b[0m \u001b[0mmeth\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprocessor\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmeth_name\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 531\u001b[0;31m \u001b[0mresponse\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmeth\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreq\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mresponse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 532\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 533\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresponse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.pyenv/versions/3.8.5/lib/python3.8/urllib/request.py\u001b[0m in \u001b[0;36mhttp_response\u001b[0;34m(self, request, response)\u001b[0m\n\u001b[1;32m 638\u001b[0m \u001b[0;31m# request was successfully received, understood, and accepted.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 639\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m200\u001b[0m \u001b[0;34m<=\u001b[0m \u001b[0mcode\u001b[0m \u001b[0;34m<\u001b[0m \u001b[0;36m300\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 640\u001b[0;31m response = self.parent.error(\n\u001b[0m\u001b[1;32m 641\u001b[0m 'http', request, response, code, msg, hdrs)\n\u001b[1;32m 642\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.pyenv/versions/3.8.5/lib/python3.8/urllib/request.py\u001b[0m in \u001b[0;36merror\u001b[0;34m(self, proto, *args)\u001b[0m\n\u001b[1;32m 567\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mhttp_err\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 568\u001b[0m \u001b[0margs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mdict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'default'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'http_error_default'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0morig_args\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 569\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_call_chain\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 570\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 571\u001b[0m \u001b[0;31m# XXX probably also want an abstract factory that knows when it makes\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.pyenv/versions/3.8.5/lib/python3.8/urllib/request.py\u001b[0m in \u001b[0;36m_call_chain\u001b[0;34m(self, chain, kind, meth_name, *args)\u001b[0m\n\u001b[1;32m 500\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mhandler\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mhandlers\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 501\u001b[0m \u001b[0mfunc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhandler\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmeth_name\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 502\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 503\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mresult\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 504\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresult\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.pyenv/versions/3.8.5/lib/python3.8/urllib/request.py\u001b[0m in \u001b[0;36mhttp_error_default\u001b[0;34m(self, req, fp, code, msg, hdrs)\u001b[0m\n\u001b[1;32m 647\u001b[0m \u001b[0;32mclass\u001b[0m \u001b[0mHTTPDefaultErrorHandler\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mBaseHandler\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 648\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mhttp_error_default\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreq\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfp\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmsg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhdrs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 649\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mHTTPError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mreq\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfull_url\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcode\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmsg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhdrs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfp\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 650\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 651\u001b[0m \u001b[0;32mclass\u001b[0m \u001b[0mHTTPRedirectHandler\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mBaseHandler\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mHTTPError\u001b[0m: HTTP Error 503: Service Unavailable" - ] - } - ], + "outputs": [], "source": [ "dataset = datasets.MNIST('./data', download=True, transform=transforms.ToTensor())" ] @@ -155,7 +124,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "hispanic-independence", "metadata": {}, "outputs": [], @@ -173,7 +142,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "id": "literary-destruction", "metadata": {}, "outputs": [], @@ -191,10 +160,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "public-berlin", "metadata": {}, - "outputs": [], + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "GPU available: True, used: False\n", + "TPU available: False, using: 0 TPU cores\n", + "/home/edgar/software/lightning-flash/.venv/lib/python3.8/site-packages/pytorch_lightning/utilities/distributed.py:68: UserWarning: GPU available but not used. Set the gpus flag in your trainer `Trainer(gpus=1)` or script `--gpus=1`.\n", + " warnings.warn(*args, **kwargs)\n" + ] + } + ], "source": [ "trainer = pl.Trainer(\n", " max_epochs=10,\n", @@ -213,10 +193,85 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "neural-genre", "metadata": {}, - "outputs": [], + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "\n", + " | Name | Type | Params\n", + "---------------------------------------\n", + "0 | model | Sequential | 101 K \n", + "1 | metrics | ModuleDict | 0 \n", + "---------------------------------------\n", + "101 K Trainable params\n", + "0 Non-trainable params\n", + "101 K Total params\n", + "0.407 Total estimated model params size (MB)\n", + "Epoch 0: 14%|█▎ | 35/256 [00:00<00:01, 217.40it/s, loss=2.4, v_num=26, val_accuracy=0.000, val_cross_entropy=2.280, train_accuracy_step=0.000, train_cross_entropy_step=2.130] /home/edgar/software/lightning-flash/.venv/lib/python3.8/site-packages/pytorch_lightning/utilities/distributed.py:68: UserWarning: The dataloader, val dataloader 0, does not have many workers which may be a bottleneck. Consider increasing the value of the `num_workers` argument` (try 12 which is the number of cpus on this machine) in the `DataLoader` init to improve performance.\n", + " warnings.warn(*args, **kwargs)\n", + "/home/edgar/software/lightning-flash/.venv/lib/python3.8/site-packages/pytorch_lightning/utilities/distributed.py:68: UserWarning: The dataloader, train dataloader, does not have many workers which may be a bottleneck. Consider increasing the value of the `num_workers` argument` (try 12 which is the number of cpus on this machine) in the `DataLoader` init to improve performance.\n", + " warnings.warn(*args, **kwargs)\n", + "Epoch 0: 50%|█████ | 128/256 [00:00<00:00, 203.95it/s, loss=1.68, v_num=26, val_accuracy=0.000, val_cross_entropy=2.280, train_accuracy_step=0.000, train_cross_entropy_step=4.150]\n", + "Validating: 0it [00:00, ?it/s]\u001b[A\n", + "Epoch 0: 52%|█████▏ | 132/256 [00:00<00:00, 202.98it/s, loss=1.68, v_num=26, val_accuracy=0.000, val_cross_entropy=2.280, train_accuracy_step=0.000, train_cross_entropy_step=4.150]\n", + "Epoch 0: 74%|███████▍ | 189/256 [00:00<00:00, 251.55it/s, loss=1.68, v_num=26, val_accuracy=0.000, val_cross_entropy=2.280, train_accuracy_step=0.000, train_cross_entropy_step=4.150]\n", + "Epoch 0: 100%|██████████| 256/256 [00:00<00:00, 297.31it/s, loss=1.68, v_num=26, val_accuracy=0.359, val_cross_entropy=1.690, train_accuracy_step=0.000, train_cross_entropy_step=2.510, train_accuracy_epoch=0.344, train_cross_entropy_epoch=2.050]\n", + "Epoch 1: 50%|█████ | 128/256 [00:00<00:00, 182.66it/s, loss=0.809, v_num=26, val_accuracy=0.359, val_cross_entropy=1.690, train_accuracy_step=1.000, train_cross_entropy_step=0.851, train_accuracy_epoch=0.344, train_cross_entropy_epoch=2.050] \n", + "Validating: 0it [00:00, ?it/s]\u001b[A\n", + "Epoch 1: 75%|███████▌ | 193/256 [00:00<00:00, 241.14it/s, loss=0.809, v_num=26, val_accuracy=0.359, val_cross_entropy=1.690, train_accuracy_step=1.000, train_cross_entropy_step=0.851, train_accuracy_epoch=0.344, train_cross_entropy_epoch=2.050]\n", + "Epoch 1: 100%|██████████| 256/256 [00:00<00:00, 288.24it/s, loss=0.809, v_num=26, val_accuracy=0.484, val_cross_entropy=1.680, train_accuracy_step=0.000, train_cross_entropy_step=2.670, train_accuracy_epoch=0.633, train_cross_entropy_epoch=1.090]\n", + "Epoch 2: 50%|█████ | 128/256 [00:00<00:00, 194.30it/s, loss=0.458, v_num=26, val_accuracy=0.484, val_cross_entropy=1.680, train_accuracy_step=1.000, train_cross_entropy_step=0.294, train_accuracy_epoch=0.633, train_cross_entropy_epoch=1.090] \n", + "Validating: 0it [00:00, ?it/s]\u001b[A\n", + "Epoch 2: 51%|█████ | 130/256 [00:00<00:00, 188.73it/s, loss=0.458, v_num=26, val_accuracy=0.484, val_cross_entropy=1.680, train_accuracy_step=1.000, train_cross_entropy_step=0.294, train_accuracy_epoch=0.633, train_cross_entropy_epoch=1.090]\n", + "Epoch 2: 100%|██████████| 256/256 [00:00<00:00, 294.59it/s, loss=0.458, v_num=26, val_accuracy=0.508, val_cross_entropy=1.850, train_accuracy_step=1.000, train_cross_entropy_step=0.649, train_accuracy_epoch=0.789, train_cross_entropy_epoch=0.549]\n", + "Epoch 3: 50%|█████ | 128/256 [00:00<00:00, 200.81it/s, loss=0.358, v_num=26, val_accuracy=0.508, val_cross_entropy=1.850, train_accuracy_step=1.000, train_cross_entropy_step=0.0079, train_accuracy_epoch=0.789, train_cross_entropy_epoch=0.549] \n", + "Validating: 0it [00:00, ?it/s]\u001b[A\n", + "Epoch 3: 56%|█████▋ | 144/256 [00:00<00:00, 215.08it/s, loss=0.358, v_num=26, val_accuracy=0.508, val_cross_entropy=1.850, train_accuracy_step=1.000, train_cross_entropy_step=0.0079, train_accuracy_epoch=0.789, train_cross_entropy_epoch=0.549]\n", + "Epoch 3: 100%|██████████| 256/256 [00:00<00:00, 309.92it/s, loss=0.358, v_num=26, val_accuracy=0.602, val_cross_entropy=1.670, train_accuracy_step=0.000, train_cross_entropy_step=0.726, train_accuracy_epoch=0.875, train_cross_entropy_epoch=0.473] \n", + "Epoch 4: 50%|█████ | 128/256 [00:00<00:00, 209.98it/s, loss=0.166, v_num=26, val_accuracy=0.602, val_cross_entropy=1.670, train_accuracy_step=1.000, train_cross_entropy_step=0.105, train_accuracy_epoch=0.875, train_cross_entropy_epoch=0.473] \n", + "Validating: 0it [00:00, ?it/s]\u001b[A\n", + "Epoch 4: 57%|█████▋ | 146/256 [00:00<00:00, 225.27it/s, loss=0.166, v_num=26, val_accuracy=0.602, val_cross_entropy=1.670, train_accuracy_step=1.000, train_cross_entropy_step=0.105, train_accuracy_epoch=0.875, train_cross_entropy_epoch=0.473]\n", + "Epoch 4: 100%|██████████| 256/256 [00:00<00:00, 317.78it/s, loss=0.166, v_num=26, val_accuracy=0.641, val_cross_entropy=1.500, train_accuracy_step=1.000, train_cross_entropy_step=0.00293, train_accuracy_epoch=0.938, train_cross_entropy_epoch=0.210]\n", + "Epoch 5: 50%|█████ | 128/256 [00:00<00:00, 185.66it/s, loss=0.0797, v_num=26, val_accuracy=0.641, val_cross_entropy=1.500, train_accuracy_step=1.000, train_cross_entropy_step=0.0154, train_accuracy_epoch=0.938, train_cross_entropy_epoch=0.210]\n", + "Validating: 0it [00:00, ?it/s]\u001b[A\n", + "Epoch 5: 57%|█████▋ | 146/256 [00:00<00:00, 199.74it/s, loss=0.0797, v_num=26, val_accuracy=0.641, val_cross_entropy=1.500, train_accuracy_step=1.000, train_cross_entropy_step=0.0154, train_accuracy_epoch=0.938, train_cross_entropy_epoch=0.210]\n", + "Epoch 5: 100%|██████████| 256/256 [00:00<00:00, 284.90it/s, loss=0.0797, v_num=26, val_accuracy=0.586, val_cross_entropy=2.010, train_accuracy_step=1.000, train_cross_entropy_step=0.00443, train_accuracy_epoch=0.953, train_cross_entropy_epoch=0.119]\n", + "Epoch 6: 50%|█████ | 128/256 [00:00<00:00, 178.55it/s, loss=0.0912, v_num=26, val_accuracy=0.586, val_cross_entropy=2.010, train_accuracy_step=1.000, train_cross_entropy_step=0.0729, train_accuracy_epoch=0.953, train_cross_entropy_epoch=0.119]\n", + "Validating: 0it [00:00, ?it/s]\u001b[A\n", + "Epoch 6: 57%|█████▋ | 146/256 [00:00<00:00, 191.48it/s, loss=0.0912, v_num=26, val_accuracy=0.586, val_cross_entropy=2.010, train_accuracy_step=1.000, train_cross_entropy_step=0.0729, train_accuracy_epoch=0.953, train_cross_entropy_epoch=0.119]\n", + "Epoch 6: 100%|██████████| 256/256 [00:00<00:00, 274.04it/s, loss=0.0912, v_num=26, val_accuracy=0.594, val_cross_entropy=2.020, train_accuracy_step=1.000, train_cross_entropy_step=0.129, train_accuracy_epoch=0.945, train_cross_entropy_epoch=0.146] \n", + "Epoch 7: 50%|█████ | 128/256 [00:00<00:00, 169.42it/s, loss=0.106, v_num=26, val_accuracy=0.594, val_cross_entropy=2.020, train_accuracy_step=1.000, train_cross_entropy_step=0.051, train_accuracy_epoch=0.945, train_cross_entropy_epoch=0.146] \n", + "Validating: 0it [00:00, ?it/s]\u001b[A\n", + "Epoch 7: 57%|█████▋ | 146/256 [00:00<00:00, 182.27it/s, loss=0.106, v_num=26, val_accuracy=0.594, val_cross_entropy=2.020, train_accuracy_step=1.000, train_cross_entropy_step=0.051, train_accuracy_epoch=0.945, train_cross_entropy_epoch=0.146]\n", + "Epoch 7: 86%|████████▌ | 219/256 [00:00<00:00, 237.78it/s, loss=0.106, v_num=26, val_accuracy=0.594, val_cross_entropy=2.020, train_accuracy_step=1.000, train_cross_entropy_step=0.051, train_accuracy_epoch=0.945, train_cross_entropy_epoch=0.146]\n", + "Epoch 7: 100%|██████████| 256/256 [00:00<00:00, 259.69it/s, loss=0.106, v_num=26, val_accuracy=0.586, val_cross_entropy=2.420, train_accuracy_step=1.000, train_cross_entropy_step=8.46e-6, train_accuracy_epoch=0.945, train_cross_entropy_epoch=0.178]\n", + "Epoch 8: 50%|█████ | 128/256 [00:00<00:00, 170.78it/s, loss=0.068, v_num=26, val_accuracy=0.586, val_cross_entropy=2.420, train_accuracy_step=1.000, train_cross_entropy_step=0.00895, train_accuracy_epoch=0.945, train_cross_entropy_epoch=0.178]\n", + "Validating: 0it [00:00, ?it/s]\u001b[A\n", + "Epoch 8: 57%|█████▋ | 146/256 [00:00<00:00, 183.98it/s, loss=0.068, v_num=26, val_accuracy=0.586, val_cross_entropy=2.420, train_accuracy_step=1.000, train_cross_entropy_step=0.00895, train_accuracy_epoch=0.945, train_cross_entropy_epoch=0.178]\n", + "Epoch 8: 86%|████████▌ | 219/256 [00:00<00:00, 240.22it/s, loss=0.068, v_num=26, val_accuracy=0.586, val_cross_entropy=2.420, train_accuracy_step=1.000, train_cross_entropy_step=0.00895, train_accuracy_epoch=0.945, train_cross_entropy_epoch=0.178]\n", + "Epoch 8: 100%|██████████| 256/256 [00:00<00:00, 262.77it/s, loss=0.068, v_num=26, val_accuracy=0.656, val_cross_entropy=1.890, train_accuracy_step=1.000, train_cross_entropy_step=3.76e-5, train_accuracy_epoch=0.953, train_cross_entropy_epoch=0.150]\n", + "Epoch 9: 50%|█████ | 128/256 [00:00<00:00, 195.85it/s, loss=0.0109, v_num=26, val_accuracy=0.656, val_cross_entropy=1.890, train_accuracy_step=1.000, train_cross_entropy_step=0.00395, train_accuracy_epoch=0.953, train_cross_entropy_epoch=0.150]\n", + "Validating: 0it [00:00, ?it/s]\u001b[A\n", + "Epoch 9: 57%|█████▋ | 146/256 [00:00<00:00, 208.94it/s, loss=0.0109, v_num=26, val_accuracy=0.656, val_cross_entropy=1.890, train_accuracy_step=1.000, train_cross_entropy_step=0.00395, train_accuracy_epoch=0.953, train_cross_entropy_epoch=0.150]\n", + "Epoch 9: 100%|██████████| 256/256 [00:00<00:00, 299.16it/s, loss=0.0109, v_num=26, val_accuracy=0.641, val_cross_entropy=2.290, train_accuracy_step=1.000, train_cross_entropy_step=2.74e-5, train_accuracy_epoch=0.992, train_cross_entropy_epoch=0.0366]\n", + "Epoch 9: 100%|██████████| 256/256 [00:00<00:00, 297.26it/s, loss=0.0109, v_num=26, val_accuracy=0.641, val_cross_entropy=2.290, train_accuracy_step=1.000, train_cross_entropy_step=2.74e-5, train_accuracy_epoch=0.992, train_cross_entropy_epoch=0.0366]\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "1" + ] + }, + "metadata": {}, + "execution_count": 8 + } + ], "source": [ "trainer.fit(classifier, DataLoader(train), DataLoader(val))" ] @@ -231,32 +286,28 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "ideal-johnson", "metadata": {}, - "outputs": [], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Testing: 1%| | 58/4975 [00:00<00:08, 575.00it/s]/home/edgar/software/lightning-flash/.venv/lib/python3.8/site-packages/pytorch_lightning/utilities/distributed.py:68: UserWarning: The dataloader, test dataloader 0, does not have many workers which may be a bottleneck. Consider increasing the value of the `num_workers` argument` (try 12 which is the number of cpus on this machine) in the `DataLoader` init to improve performance.\n", + " warnings.warn(*args, **kwargs)\n", + "Testing: 100%|██████████| 4975/4975 [00:06<00:00, 768.58it/s]\n", + "--------------------------------------------------------------------------------\n", + "DATALOADER:0 TEST RESULTS\n", + "{'test_accuracy': 0.72120600938797, 'test_cross_entropy': 1.481386661529541}\n", + "--------------------------------------------------------------------------------\n" + ] + } + ], "source": [ "results = trainer.test(classifier, test_dataloaders=DataLoader(test))" ] }, - { - "cell_type": "markdown", - "id": "classified-cholesterol", - "metadata": {}, - "source": [ - "# Predicting" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "academic-preference", - "metadata": {}, - "outputs": [], - "source": [ - "classifier.predict(predict)" - ] - }, { "cell_type": "markdown", "id": "traditional-faculty", @@ -301,9 +352,8 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" + "name": "python385jvsc74a57bd0db7cb6f8b99581485a229201158c5b3d87043825d76fdd729161e90706f71f5a", + "display_name": "Python 3.8.5 64-bit ('.venv')" }, "language_info": { "codemirror_mode": { diff --git a/flash_notebooks/image_classification.ipynb b/flash_notebooks/image_classification.ipynb index 403d5e2908..1979cc862f 100644 --- a/flash_notebooks/image_classification.ipynb +++ b/flash_notebooks/image_classification.ipynb @@ -198,7 +198,11 @@ "cell_type": "code", "execution_count": null, "id": "apart-arrangement", - "metadata": {}, + "metadata": { + "tags": [ + "outputPrepend" + ] + }, "outputs": [], "source": [ "trainer.finetune(model, datamodule=datamodule, strategy=\"freeze_unfreeze\")" @@ -353,9 +357,8 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" + "name": "python385jvsc74a57bd0db7cb6f8b99581485a229201158c5b3d87043825d76fdd729161e90706f71f5a", + "display_name": "Python 3.8.5 64-bit ('.venv')" }, "language_info": { "codemirror_mode": { @@ -367,7 +370,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.9" + "version": "3.8.5" } }, "nbformat": 4, diff --git a/flash_notebooks/text_classification.ipynb b/flash_notebooks/text_classification.ipynb index f238c09b60..e6e899792a 100644 --- a/flash_notebooks/text_classification.ipynb +++ b/flash_notebooks/text_classification.ipynb @@ -62,7 +62,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "historical-asthma", "metadata": {}, "outputs": [], @@ -83,10 +83,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "applied-operation", "metadata": {}, - "outputs": [], + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/home/edgar/software/lightning-flash/.venv/lib/python3.8/site-packages/urllib3/connectionpool.py:981: InsecureRequestWarning: Unverified HTTPS request is being made to host 'pl-flash-data.s3.amazonaws.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n warnings.warn(\n" + ] + } + ], "source": [ "download_data(\"https://pl-flash-data.s3.amazonaws.com/imdb.zip\", 'data/')" ] @@ -104,17 +112,39 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "flush-prince", "metadata": {}, - "outputs": [], + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Using custom data configuration default\n", + "Downloading and preparing dataset csv/default-c9d91589ee7ce1a1 (download: Unknown size, generated: Unknown size, post-processed: Unknown size, total: Unknown size) to /home/edgar/.cache/huggingface/datasets/csv/default-c9d91589ee7ce1a1/0.0.0/2960f95a26e85d40ca41a230ac88787f715ee3003edaacb8b1f0891e9f04dda2...\n", + " 21%|██ | 4695/22500 [00:00<00:00, 46946.57ex/s]Dataset csv downloaded and prepared to /home/edgar/.cache/huggingface/datasets/csv/default-c9d91589ee7ce1a1/0.0.0/2960f95a26e85d40ca41a230ac88787f715ee3003edaacb8b1f0891e9f04dda2. Subsequent calls will reuse this data.\n", + "100%|██████████| 22500/22500 [00:00<00:00, 45521.06ex/s]\n", + "100%|██████████| 23/23 [00:03<00:00, 6.70ba/s]\n", + "Using custom data configuration default\n", + "Downloading and preparing dataset csv/default-cecc8e6bf15236ac (download: Unknown size, generated: Unknown size, post-processed: Unknown size, total: Unknown size) to /home/edgar/.cache/huggingface/datasets/csv/default-cecc8e6bf15236ac/0.0.0/2960f95a26e85d40ca41a230ac88787f715ee3003edaacb8b1f0891e9f04dda2...\n", + "100%|██████████| 2500/2500 [00:00<00:00, 48029.53ex/s]\n", + " 0%| | 0/3 [00:00 Date: Fri, 7 May 2021 21:59:03 +0000 Subject: [PATCH 03/10] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .readthedocs.yml | 2 +- Makefile | 2 +- docs/source/_static/images/logo.svg | 2 +- requirements/extras.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 6eeec2eb41..bb9ffdbdd8 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -20,4 +20,4 @@ python: version: 3.7 install: - requirements: requirements/docs.txt - #- requirements: requirements.txt \ No newline at end of file + #- requirements: requirements.txt diff --git a/Makefile b/Makefile index 9bcddf4426..6fcee001e6 100644 --- a/Makefile +++ b/Makefile @@ -25,4 +25,4 @@ clean: rm -rf .pytest_cache rm -rf ./docs/build rm -rf ./docs/source/**/generated - rm -rf ./docs/source/api \ No newline at end of file + rm -rf ./docs/source/api diff --git a/docs/source/_static/images/logo.svg b/docs/source/_static/images/logo.svg index ad94333a72..2c3e330bbf 100644 --- a/docs/source/_static/images/logo.svg +++ b/docs/source/_static/images/logo.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/requirements/extras.txt b/requirements/extras.txt index 78882bf8f3..ccb0a4be9b 100644 --- a/requirements/extras.txt +++ b/requirements/extras.txt @@ -1 +1 @@ -timm>=0.4.5 \ No newline at end of file +timm>=0.4.5 From 84bc32eb63c1012f7427986db6fa6a00fb927961 Mon Sep 17 00:00:00 2001 From: Edgar Riba Date: Sat, 8 May 2021 00:18:36 +0200 Subject: [PATCH 04/10] update kornia to 0.5.1 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 38041c7a90..41601b3f3a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -16,6 +16,6 @@ rouge-score>=0.0.4 sentencepiece>=0.1.95 filelock # comes with 3rd-party dependency pycocotools>=2.0.2 ; python_version >= "3.7" -kornia>=0.5.0 +kornia>=0.5.1 pytorchvideo matplotlib # used by the visualisation callback From 2ff80bdc7cd7c367c329a1739dfb0beace0ca32d Mon Sep 17 00:00:00 2001 From: Edgar Riba Date: Sat, 8 May 2021 00:31:54 +0200 Subject: [PATCH 05/10] update text_classification.ipynb --- flash_notebooks/text_classification.ipynb | 52 ++++++++++++----------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/flash_notebooks/text_classification.ipynb b/flash_notebooks/text_classification.ipynb index e6e899792a..22313135ea 100644 --- a/flash_notebooks/text_classification.ipynb +++ b/flash_notebooks/text_classification.ipynb @@ -121,20 +121,20 @@ "name": "stderr", "text": [ "Using custom data configuration default\n", - "Downloading and preparing dataset csv/default-c9d91589ee7ce1a1 (download: Unknown size, generated: Unknown size, post-processed: Unknown size, total: Unknown size) to /home/edgar/.cache/huggingface/datasets/csv/default-c9d91589ee7ce1a1/0.0.0/2960f95a26e85d40ca41a230ac88787f715ee3003edaacb8b1f0891e9f04dda2...\n", - " 21%|██ | 4695/22500 [00:00<00:00, 46946.57ex/s]Dataset csv downloaded and prepared to /home/edgar/.cache/huggingface/datasets/csv/default-c9d91589ee7ce1a1/0.0.0/2960f95a26e85d40ca41a230ac88787f715ee3003edaacb8b1f0891e9f04dda2. Subsequent calls will reuse this data.\n", - "100%|██████████| 22500/22500 [00:00<00:00, 45521.06ex/s]\n", - "100%|██████████| 23/23 [00:03<00:00, 6.70ba/s]\n", + "Downloading and preparing dataset csv/default-b916ce9cf25b9a08 (download: Unknown size, generated: Unknown size, post-processed: Unknown size, total: Unknown size) to /home/edgar/.cache/huggingface/datasets/csv/default-b916ce9cf25b9a08/0.0.0/2960f95a26e85d40ca41a230ac88787f715ee3003edaacb8b1f0891e9f04dda2...\n", + " 12%|█▏ | 2696/22500 [00:00<00:00, 23290.55ex/s]Dataset csv downloaded and prepared to /home/edgar/.cache/huggingface/datasets/csv/default-b916ce9cf25b9a08/0.0.0/2960f95a26e85d40ca41a230ac88787f715ee3003edaacb8b1f0891e9f04dda2. Subsequent calls will reuse this data.\n", + "100%|██████████| 22500/22500 [00:00<00:00, 38709.52ex/s]\n", + "100%|██████████| 23/23 [00:03<00:00, 6.64ba/s]\n", "Using custom data configuration default\n", - "Downloading and preparing dataset csv/default-cecc8e6bf15236ac (download: Unknown size, generated: Unknown size, post-processed: Unknown size, total: Unknown size) to /home/edgar/.cache/huggingface/datasets/csv/default-cecc8e6bf15236ac/0.0.0/2960f95a26e85d40ca41a230ac88787f715ee3003edaacb8b1f0891e9f04dda2...\n", - "100%|██████████| 2500/2500 [00:00<00:00, 48029.53ex/s]\n", - " 0%| | 0/3 [00:00 Date: Sat, 8 May 2021 13:27:32 +0100 Subject: [PATCH 06/10] Fixes --- flash_notebooks/tabular_classification.ipynb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/flash_notebooks/tabular_classification.ipynb b/flash_notebooks/tabular_classification.ipynb index 8cbb8470a4..30b0188811 100644 --- a/flash_notebooks/tabular_classification.ipynb +++ b/flash_notebooks/tabular_classification.ipynb @@ -95,11 +95,11 @@ "outputs": [], "source": [ "datamodule = TabularData.from_csv(\n", - " train_csv=\"./data/titanic/titanic.csv\",\n", - " test_csv=\"./data/titanic/test.csv\",\n", - " categorical_cols=[\"Sex\", \"Age\", \"SibSp\", \"Parch\", \"Ticket\", \"Cabin\", \"Embarked\"],\n", - " numerical_cols=[\"Fare\"],\n", + " [\"Sex\", \"Age\", \"SibSp\", \"Parch\", \"Ticket\", \"Cabin\", \"Embarked\"],\n", + " [\"Fare\"],\n", " target_col=\"Survived\",\n", + " train_file=\"./data/titanic/titanic.csv\",\n", + " test_file=\"./data/titanic/test.csv\",\n", " val_size=0.25,\n", ")\n" ] From b1d90ed12ded70e4213e1b6baadc8645f6dcd906 Mon Sep 17 00:00:00 2001 From: Ethan Harris Date: Sat, 8 May 2021 13:39:11 +0100 Subject: [PATCH 07/10] Fix --- flash_notebooks/tabular_classification.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flash_notebooks/tabular_classification.ipynb b/flash_notebooks/tabular_classification.ipynb index 30b0188811..f7e8dc93d3 100644 --- a/flash_notebooks/tabular_classification.ipynb +++ b/flash_notebooks/tabular_classification.ipynb @@ -97,7 +97,7 @@ "datamodule = TabularData.from_csv(\n", " [\"Sex\", \"Age\", \"SibSp\", \"Parch\", \"Ticket\", \"Cabin\", \"Embarked\"],\n", " [\"Fare\"],\n", - " target_col=\"Survived\",\n", + " target_field=\"Survived\",\n", " train_file=\"./data/titanic/titanic.csv\",\n", " test_file=\"./data/titanic/test.csv\",\n", " val_size=0.25,\n", From edee7ce93f42b45a0b0f55f22cdd3c8de5a40617 Mon Sep 17 00:00:00 2001 From: Ethan Harris Date: Sat, 8 May 2021 13:44:42 +0100 Subject: [PATCH 08/10] Fixes --- flash_notebooks/tabular_classification.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flash_notebooks/tabular_classification.ipynb b/flash_notebooks/tabular_classification.ipynb index f7e8dc93d3..f493f5c57f 100644 --- a/flash_notebooks/tabular_classification.ipynb +++ b/flash_notebooks/tabular_classification.ipynb @@ -100,7 +100,7 @@ " target_field=\"Survived\",\n", " train_file=\"./data/titanic/titanic.csv\",\n", " test_file=\"./data/titanic/test.csv\",\n", - " val_size=0.25,\n", + " val_split=0.25,\n", ")\n" ] }, From f98318c148c8c7af188e3eb6e5a229da1e94bffd Mon Sep 17 00:00:00 2001 From: Ethan Harris Date: Sat, 8 May 2021 13:53:36 +0100 Subject: [PATCH 09/10] Clear metadata --- flash_notebooks/custom_task_tutorial.ipynb | 19 +- flash_notebooks/generic_task.ipynb | 143 ++----------- flash_notebooks/image_classification.ipynb | 19 +- flash_notebooks/tabular_classification.ipynb | 20 +- flash_notebooks/text_classification.ipynb | 207 ++----------------- 5 files changed, 37 insertions(+), 371 deletions(-) diff --git a/flash_notebooks/custom_task_tutorial.ipynb b/flash_notebooks/custom_task_tutorial.ipynb index 9c28486f60..10c698573e 100644 --- a/flash_notebooks/custom_task_tutorial.ipynb +++ b/flash_notebooks/custom_task_tutorial.ipynb @@ -374,24 +374,7 @@ ] } ], - "metadata": { - "kernelspec": { - "name": "python385jvsc74a57bd0db7cb6f8b99581485a229201158c5b3d87043825d76fdd729161e90706f71f5a", - "display_name": "Python 3.8.5 64-bit ('.venv')" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - } - }, + "metadata": {}, "nbformat": 4, "nbformat_minor": 4 } diff --git a/flash_notebooks/generic_task.ipynb b/flash_notebooks/generic_task.ipynb index ab68e36a6a..a3ddd6a86b 100644 --- a/flash_notebooks/generic_task.ipynb +++ b/flash_notebooks/generic_task.ipynb @@ -45,7 +45,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "foreign-design", "metadata": {}, "outputs": [], @@ -60,7 +60,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "mathematical-barbados", "metadata": {}, "outputs": [], @@ -83,7 +83,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "selective-request", "metadata": {}, "outputs": [], @@ -106,7 +106,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "stunning-anime", "metadata": {}, "outputs": [], @@ -124,7 +124,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "id": "hispanic-independence", "metadata": {}, "outputs": [], @@ -142,7 +142,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "id": "literary-destruction", "metadata": {}, "outputs": [], @@ -160,21 +160,10 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "id": "public-berlin", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "name": "stderr", - "text": [ - "GPU available: True, used: False\n", - "TPU available: False, using: 0 TPU cores\n", - "/home/edgar/software/lightning-flash/.venv/lib/python3.8/site-packages/pytorch_lightning/utilities/distributed.py:68: UserWarning: GPU available but not used. Set the gpus flag in your trainer `Trainer(gpus=1)` or script `--gpus=1`.\n", - " warnings.warn(*args, **kwargs)\n" - ] - } - ], + "outputs": [], "source": [ "trainer = pl.Trainer(\n", " max_epochs=10,\n", @@ -193,85 +182,10 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "id": "neural-genre", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "name": "stderr", - "text": [ - "\n", - " | Name | Type | Params\n", - "---------------------------------------\n", - "0 | model | Sequential | 101 K \n", - "1 | metrics | ModuleDict | 0 \n", - "---------------------------------------\n", - "101 K Trainable params\n", - "0 Non-trainable params\n", - "101 K Total params\n", - "0.407 Total estimated model params size (MB)\n", - "Epoch 0: 14%|█▎ | 35/256 [00:00<00:01, 217.40it/s, loss=2.4, v_num=26, val_accuracy=0.000, val_cross_entropy=2.280, train_accuracy_step=0.000, train_cross_entropy_step=2.130] /home/edgar/software/lightning-flash/.venv/lib/python3.8/site-packages/pytorch_lightning/utilities/distributed.py:68: UserWarning: The dataloader, val dataloader 0, does not have many workers which may be a bottleneck. Consider increasing the value of the `num_workers` argument` (try 12 which is the number of cpus on this machine) in the `DataLoader` init to improve performance.\n", - " warnings.warn(*args, **kwargs)\n", - "/home/edgar/software/lightning-flash/.venv/lib/python3.8/site-packages/pytorch_lightning/utilities/distributed.py:68: UserWarning: The dataloader, train dataloader, does not have many workers which may be a bottleneck. Consider increasing the value of the `num_workers` argument` (try 12 which is the number of cpus on this machine) in the `DataLoader` init to improve performance.\n", - " warnings.warn(*args, **kwargs)\n", - "Epoch 0: 50%|█████ | 128/256 [00:00<00:00, 203.95it/s, loss=1.68, v_num=26, val_accuracy=0.000, val_cross_entropy=2.280, train_accuracy_step=0.000, train_cross_entropy_step=4.150]\n", - "Validating: 0it [00:00, ?it/s]\u001b[A\n", - "Epoch 0: 52%|█████▏ | 132/256 [00:00<00:00, 202.98it/s, loss=1.68, v_num=26, val_accuracy=0.000, val_cross_entropy=2.280, train_accuracy_step=0.000, train_cross_entropy_step=4.150]\n", - "Epoch 0: 74%|███████▍ | 189/256 [00:00<00:00, 251.55it/s, loss=1.68, v_num=26, val_accuracy=0.000, val_cross_entropy=2.280, train_accuracy_step=0.000, train_cross_entropy_step=4.150]\n", - "Epoch 0: 100%|██████████| 256/256 [00:00<00:00, 297.31it/s, loss=1.68, v_num=26, val_accuracy=0.359, val_cross_entropy=1.690, train_accuracy_step=0.000, train_cross_entropy_step=2.510, train_accuracy_epoch=0.344, train_cross_entropy_epoch=2.050]\n", - "Epoch 1: 50%|█████ | 128/256 [00:00<00:00, 182.66it/s, loss=0.809, v_num=26, val_accuracy=0.359, val_cross_entropy=1.690, train_accuracy_step=1.000, train_cross_entropy_step=0.851, train_accuracy_epoch=0.344, train_cross_entropy_epoch=2.050] \n", - "Validating: 0it [00:00, ?it/s]\u001b[A\n", - "Epoch 1: 75%|███████▌ | 193/256 [00:00<00:00, 241.14it/s, loss=0.809, v_num=26, val_accuracy=0.359, val_cross_entropy=1.690, train_accuracy_step=1.000, train_cross_entropy_step=0.851, train_accuracy_epoch=0.344, train_cross_entropy_epoch=2.050]\n", - "Epoch 1: 100%|██████████| 256/256 [00:00<00:00, 288.24it/s, loss=0.809, v_num=26, val_accuracy=0.484, val_cross_entropy=1.680, train_accuracy_step=0.000, train_cross_entropy_step=2.670, train_accuracy_epoch=0.633, train_cross_entropy_epoch=1.090]\n", - "Epoch 2: 50%|█████ | 128/256 [00:00<00:00, 194.30it/s, loss=0.458, v_num=26, val_accuracy=0.484, val_cross_entropy=1.680, train_accuracy_step=1.000, train_cross_entropy_step=0.294, train_accuracy_epoch=0.633, train_cross_entropy_epoch=1.090] \n", - "Validating: 0it [00:00, ?it/s]\u001b[A\n", - "Epoch 2: 51%|█████ | 130/256 [00:00<00:00, 188.73it/s, loss=0.458, v_num=26, val_accuracy=0.484, val_cross_entropy=1.680, train_accuracy_step=1.000, train_cross_entropy_step=0.294, train_accuracy_epoch=0.633, train_cross_entropy_epoch=1.090]\n", - "Epoch 2: 100%|██████████| 256/256 [00:00<00:00, 294.59it/s, loss=0.458, v_num=26, val_accuracy=0.508, val_cross_entropy=1.850, train_accuracy_step=1.000, train_cross_entropy_step=0.649, train_accuracy_epoch=0.789, train_cross_entropy_epoch=0.549]\n", - "Epoch 3: 50%|█████ | 128/256 [00:00<00:00, 200.81it/s, loss=0.358, v_num=26, val_accuracy=0.508, val_cross_entropy=1.850, train_accuracy_step=1.000, train_cross_entropy_step=0.0079, train_accuracy_epoch=0.789, train_cross_entropy_epoch=0.549] \n", - "Validating: 0it [00:00, ?it/s]\u001b[A\n", - "Epoch 3: 56%|█████▋ | 144/256 [00:00<00:00, 215.08it/s, loss=0.358, v_num=26, val_accuracy=0.508, val_cross_entropy=1.850, train_accuracy_step=1.000, train_cross_entropy_step=0.0079, train_accuracy_epoch=0.789, train_cross_entropy_epoch=0.549]\n", - "Epoch 3: 100%|██████████| 256/256 [00:00<00:00, 309.92it/s, loss=0.358, v_num=26, val_accuracy=0.602, val_cross_entropy=1.670, train_accuracy_step=0.000, train_cross_entropy_step=0.726, train_accuracy_epoch=0.875, train_cross_entropy_epoch=0.473] \n", - "Epoch 4: 50%|█████ | 128/256 [00:00<00:00, 209.98it/s, loss=0.166, v_num=26, val_accuracy=0.602, val_cross_entropy=1.670, train_accuracy_step=1.000, train_cross_entropy_step=0.105, train_accuracy_epoch=0.875, train_cross_entropy_epoch=0.473] \n", - "Validating: 0it [00:00, ?it/s]\u001b[A\n", - "Epoch 4: 57%|█████▋ | 146/256 [00:00<00:00, 225.27it/s, loss=0.166, v_num=26, val_accuracy=0.602, val_cross_entropy=1.670, train_accuracy_step=1.000, train_cross_entropy_step=0.105, train_accuracy_epoch=0.875, train_cross_entropy_epoch=0.473]\n", - "Epoch 4: 100%|██████████| 256/256 [00:00<00:00, 317.78it/s, loss=0.166, v_num=26, val_accuracy=0.641, val_cross_entropy=1.500, train_accuracy_step=1.000, train_cross_entropy_step=0.00293, train_accuracy_epoch=0.938, train_cross_entropy_epoch=0.210]\n", - "Epoch 5: 50%|█████ | 128/256 [00:00<00:00, 185.66it/s, loss=0.0797, v_num=26, val_accuracy=0.641, val_cross_entropy=1.500, train_accuracy_step=1.000, train_cross_entropy_step=0.0154, train_accuracy_epoch=0.938, train_cross_entropy_epoch=0.210]\n", - "Validating: 0it [00:00, ?it/s]\u001b[A\n", - "Epoch 5: 57%|█████▋ | 146/256 [00:00<00:00, 199.74it/s, loss=0.0797, v_num=26, val_accuracy=0.641, val_cross_entropy=1.500, train_accuracy_step=1.000, train_cross_entropy_step=0.0154, train_accuracy_epoch=0.938, train_cross_entropy_epoch=0.210]\n", - "Epoch 5: 100%|██████████| 256/256 [00:00<00:00, 284.90it/s, loss=0.0797, v_num=26, val_accuracy=0.586, val_cross_entropy=2.010, train_accuracy_step=1.000, train_cross_entropy_step=0.00443, train_accuracy_epoch=0.953, train_cross_entropy_epoch=0.119]\n", - "Epoch 6: 50%|█████ | 128/256 [00:00<00:00, 178.55it/s, loss=0.0912, v_num=26, val_accuracy=0.586, val_cross_entropy=2.010, train_accuracy_step=1.000, train_cross_entropy_step=0.0729, train_accuracy_epoch=0.953, train_cross_entropy_epoch=0.119]\n", - "Validating: 0it [00:00, ?it/s]\u001b[A\n", - "Epoch 6: 57%|█████▋ | 146/256 [00:00<00:00, 191.48it/s, loss=0.0912, v_num=26, val_accuracy=0.586, val_cross_entropy=2.010, train_accuracy_step=1.000, train_cross_entropy_step=0.0729, train_accuracy_epoch=0.953, train_cross_entropy_epoch=0.119]\n", - "Epoch 6: 100%|██████████| 256/256 [00:00<00:00, 274.04it/s, loss=0.0912, v_num=26, val_accuracy=0.594, val_cross_entropy=2.020, train_accuracy_step=1.000, train_cross_entropy_step=0.129, train_accuracy_epoch=0.945, train_cross_entropy_epoch=0.146] \n", - "Epoch 7: 50%|█████ | 128/256 [00:00<00:00, 169.42it/s, loss=0.106, v_num=26, val_accuracy=0.594, val_cross_entropy=2.020, train_accuracy_step=1.000, train_cross_entropy_step=0.051, train_accuracy_epoch=0.945, train_cross_entropy_epoch=0.146] \n", - "Validating: 0it [00:00, ?it/s]\u001b[A\n", - "Epoch 7: 57%|█████▋ | 146/256 [00:00<00:00, 182.27it/s, loss=0.106, v_num=26, val_accuracy=0.594, val_cross_entropy=2.020, train_accuracy_step=1.000, train_cross_entropy_step=0.051, train_accuracy_epoch=0.945, train_cross_entropy_epoch=0.146]\n", - "Epoch 7: 86%|████████▌ | 219/256 [00:00<00:00, 237.78it/s, loss=0.106, v_num=26, val_accuracy=0.594, val_cross_entropy=2.020, train_accuracy_step=1.000, train_cross_entropy_step=0.051, train_accuracy_epoch=0.945, train_cross_entropy_epoch=0.146]\n", - "Epoch 7: 100%|██████████| 256/256 [00:00<00:00, 259.69it/s, loss=0.106, v_num=26, val_accuracy=0.586, val_cross_entropy=2.420, train_accuracy_step=1.000, train_cross_entropy_step=8.46e-6, train_accuracy_epoch=0.945, train_cross_entropy_epoch=0.178]\n", - "Epoch 8: 50%|█████ | 128/256 [00:00<00:00, 170.78it/s, loss=0.068, v_num=26, val_accuracy=0.586, val_cross_entropy=2.420, train_accuracy_step=1.000, train_cross_entropy_step=0.00895, train_accuracy_epoch=0.945, train_cross_entropy_epoch=0.178]\n", - "Validating: 0it [00:00, ?it/s]\u001b[A\n", - "Epoch 8: 57%|█████▋ | 146/256 [00:00<00:00, 183.98it/s, loss=0.068, v_num=26, val_accuracy=0.586, val_cross_entropy=2.420, train_accuracy_step=1.000, train_cross_entropy_step=0.00895, train_accuracy_epoch=0.945, train_cross_entropy_epoch=0.178]\n", - "Epoch 8: 86%|████████▌ | 219/256 [00:00<00:00, 240.22it/s, loss=0.068, v_num=26, val_accuracy=0.586, val_cross_entropy=2.420, train_accuracy_step=1.000, train_cross_entropy_step=0.00895, train_accuracy_epoch=0.945, train_cross_entropy_epoch=0.178]\n", - "Epoch 8: 100%|██████████| 256/256 [00:00<00:00, 262.77it/s, loss=0.068, v_num=26, val_accuracy=0.656, val_cross_entropy=1.890, train_accuracy_step=1.000, train_cross_entropy_step=3.76e-5, train_accuracy_epoch=0.953, train_cross_entropy_epoch=0.150]\n", - "Epoch 9: 50%|█████ | 128/256 [00:00<00:00, 195.85it/s, loss=0.0109, v_num=26, val_accuracy=0.656, val_cross_entropy=1.890, train_accuracy_step=1.000, train_cross_entropy_step=0.00395, train_accuracy_epoch=0.953, train_cross_entropy_epoch=0.150]\n", - "Validating: 0it [00:00, ?it/s]\u001b[A\n", - "Epoch 9: 57%|█████▋ | 146/256 [00:00<00:00, 208.94it/s, loss=0.0109, v_num=26, val_accuracy=0.656, val_cross_entropy=1.890, train_accuracy_step=1.000, train_cross_entropy_step=0.00395, train_accuracy_epoch=0.953, train_cross_entropy_epoch=0.150]\n", - "Epoch 9: 100%|██████████| 256/256 [00:00<00:00, 299.16it/s, loss=0.0109, v_num=26, val_accuracy=0.641, val_cross_entropy=2.290, train_accuracy_step=1.000, train_cross_entropy_step=2.74e-5, train_accuracy_epoch=0.992, train_cross_entropy_epoch=0.0366]\n", - "Epoch 9: 100%|██████████| 256/256 [00:00<00:00, 297.26it/s, loss=0.0109, v_num=26, val_accuracy=0.641, val_cross_entropy=2.290, train_accuracy_step=1.000, train_cross_entropy_step=2.74e-5, train_accuracy_epoch=0.992, train_cross_entropy_epoch=0.0366]\n" - ] - }, - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "1" - ] - }, - "metadata": {}, - "execution_count": 8 - } - ], + "outputs": [], "source": [ "trainer.fit(classifier, DataLoader(train), DataLoader(val))" ] @@ -286,24 +200,10 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "id": "ideal-johnson", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Testing: 1%| | 58/4975 [00:00<00:08, 575.00it/s]/home/edgar/software/lightning-flash/.venv/lib/python3.8/site-packages/pytorch_lightning/utilities/distributed.py:68: UserWarning: The dataloader, test dataloader 0, does not have many workers which may be a bottleneck. Consider increasing the value of the `num_workers` argument` (try 12 which is the number of cpus on this machine) in the `DataLoader` init to improve performance.\n", - " warnings.warn(*args, **kwargs)\n", - "Testing: 100%|██████████| 4975/4975 [00:06<00:00, 768.58it/s]\n", - "--------------------------------------------------------------------------------\n", - "DATALOADER:0 TEST RESULTS\n", - "{'test_accuracy': 0.72120600938797, 'test_cross_entropy': 1.481386661529541}\n", - "--------------------------------------------------------------------------------\n" - ] - } - ], + "outputs": [], "source": [ "results = trainer.test(classifier, test_dataloaders=DataLoader(test))" ] @@ -350,24 +250,7 @@ ] } ], - "metadata": { - "kernelspec": { - "name": "python385jvsc74a57bd0db7cb6f8b99581485a229201158c5b3d87043825d76fdd729161e90706f71f5a", - "display_name": "Python 3.8.5 64-bit ('.venv')" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - } - }, + "metadata": {}, "nbformat": 4, "nbformat_minor": 5 } diff --git a/flash_notebooks/image_classification.ipynb b/flash_notebooks/image_classification.ipynb index 1979cc862f..238596f327 100644 --- a/flash_notebooks/image_classification.ipynb +++ b/flash_notebooks/image_classification.ipynb @@ -355,24 +355,7 @@ ] } ], - "metadata": { - "kernelspec": { - "name": "python385jvsc74a57bd0db7cb6f8b99581485a229201158c5b3d87043825d76fdd729161e90706f71f5a", - "display_name": "Python 3.8.5 64-bit ('.venv')" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - } - }, + "metadata": {}, "nbformat": 4, "nbformat_minor": 5 } diff --git a/flash_notebooks/tabular_classification.ipynb b/flash_notebooks/tabular_classification.ipynb index f493f5c57f..a3d5b77a3f 100644 --- a/flash_notebooks/tabular_classification.ipynb +++ b/flash_notebooks/tabular_classification.ipynb @@ -297,25 +297,7 @@ ] } ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.8.5" - } - }, + "metadata": {}, "nbformat": 4, "nbformat_minor": 5 } diff --git a/flash_notebooks/text_classification.ipynb b/flash_notebooks/text_classification.ipynb index 22313135ea..81e0e850e1 100644 --- a/flash_notebooks/text_classification.ipynb +++ b/flash_notebooks/text_classification.ipynb @@ -62,7 +62,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "id": "historical-asthma", "metadata": {}, "outputs": [], @@ -83,18 +83,10 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "applied-operation", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "name": "stderr", - "text": [ - "/home/edgar/software/lightning-flash/.venv/lib/python3.8/site-packages/urllib3/connectionpool.py:981: InsecureRequestWarning: Unverified HTTPS request is being made to host 'pl-flash-data.s3.amazonaws.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings\n warnings.warn(\n" - ] - } - ], + "outputs": [], "source": [ "download_data(\"https://pl-flash-data.s3.amazonaws.com/imdb.zip\", 'data/')" ] @@ -112,32 +104,10 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "flush-prince", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "name": "stderr", - "text": [ - "Using custom data configuration default\n", - "Downloading and preparing dataset csv/default-b916ce9cf25b9a08 (download: Unknown size, generated: Unknown size, post-processed: Unknown size, total: Unknown size) to /home/edgar/.cache/huggingface/datasets/csv/default-b916ce9cf25b9a08/0.0.0/2960f95a26e85d40ca41a230ac88787f715ee3003edaacb8b1f0891e9f04dda2...\n", - " 12%|█▏ | 2696/22500 [00:00<00:00, 23290.55ex/s]Dataset csv downloaded and prepared to /home/edgar/.cache/huggingface/datasets/csv/default-b916ce9cf25b9a08/0.0.0/2960f95a26e85d40ca41a230ac88787f715ee3003edaacb8b1f0891e9f04dda2. Subsequent calls will reuse this data.\n", - "100%|██████████| 22500/22500 [00:00<00:00, 38709.52ex/s]\n", - "100%|██████████| 23/23 [00:03<00:00, 6.64ba/s]\n", - "Using custom data configuration default\n", - "Downloading and preparing dataset csv/default-7d0ea02c48184824 (download: Unknown size, generated: Unknown size, post-processed: Unknown size, total: Unknown size) to /home/edgar/.cache/huggingface/datasets/csv/default-7d0ea02c48184824/0.0.0/2960f95a26e85d40ca41a230ac88787f715ee3003edaacb8b1f0891e9f04dda2...\n", - "100%|██████████| 2500/2500 [00:00<00:00, 43596.57ex/s]\n", - " 0%| | 0/3 [00:00 Date: Sat, 8 May 2021 14:00:08 +0100 Subject: [PATCH 10/10] Fix --- flash_notebooks/tabular_classification.ipynb | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/flash_notebooks/tabular_classification.ipynb b/flash_notebooks/tabular_classification.ipynb index a3d5b77a3f..f493f5c57f 100644 --- a/flash_notebooks/tabular_classification.ipynb +++ b/flash_notebooks/tabular_classification.ipynb @@ -297,7 +297,25 @@ ] } ], - "metadata": {}, + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, "nbformat": 4, "nbformat_minor": 5 }