Skip to content

Instantly share code, notes, and snippets.

@czynot
Created March 21, 2020 09:23
Show Gist options
  • Save czynot/c87ab82d71c5ec777b792a52968688bc to your computer and use it in GitHub Desktop.
Save czynot/c87ab82d71c5ec777b792a52968688bc to your computer and use it in GitHub Desktop.
train_covid19.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "train_covid19.ipynb",
"provenance": [],
"collapsed_sections": [],
"toc_visible": true,
"mount_file_id": "120jl8kdg8TkwCcXGzyIZjUUvTW3b69a5",
"authorship_tag": "ABX9TyM42WIt4MhkzuRJNT2sW405",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "GPU"
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/czynot/c87ab82d71c5ec777b792a52968688bc/train_covid19.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "cgTf_Ag3Rc3Z",
"colab_type": "text"
},
"source": [
"# **Detecting COVID-19 in X-ray images with Keras, TensorFlow, and Deep Learning**"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "BzlD3pibVFJb",
"colab_type": "text"
},
"source": [
"## Import Statements"
]
},
{
"cell_type": "code",
"metadata": {
"id": "m7VEXBoF-d74",
"colab_type": "code",
"colab": {}
},
"source": [
"# !pip uninstall tensorflow "
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "vnZB6QhC-j5a",
"colab_type": "code",
"colab": {}
},
"source": [
"# !pip install tensorflow"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "gMJ05u24vFEY",
"colab_type": "code",
"colab": {}
},
"source": [
"# import the necessary packages\n",
"from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
"from tensorflow.keras.applications import VGG16\n",
"from tensorflow.keras.layers import AveragePooling2D\n",
"from tensorflow.keras.layers import Dropout\n",
"from tensorflow.keras.layers import Flatten\n",
"from tensorflow.keras.layers import Dense\n",
"from tensorflow.keras.layers import Input\n",
"from tensorflow.keras.models import Model\n",
"from tensorflow.keras.optimizers import Adam\n",
"from tensorflow.keras.utils import to_categorical\n",
"from sklearn.preprocessing import LabelBinarizer\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.metrics import classification_report\n",
"from sklearn.metrics import confusion_matrix\n",
"from imutils import paths\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import argparse\n",
"import cv2\n",
"import os"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "bhtaZu8x_MX-",
"colab_type": "text"
},
"source": [
"## Change Direrctory to Store and Read Data"
]
},
{
"cell_type": "code",
"metadata": {
"id": "ac1sXTGf-HoI",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "83e09bd5-bd4c-4740-ddf9-1ba45b1135d0"
},
"source": [
"cd .."
],
"execution_count": 4,
"outputs": [
{
"output_type": "stream",
"text": [
"/\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Vf448egA_E7r",
"colab_type": "code",
"colab": {}
},
"source": [
"mkdir covid-19"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "ogQF8U3M_GoV",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "291c3012-cd4d-4006-d01d-501b29ab6cc7"
},
"source": [
"cd covid-19"
],
"execution_count": 6,
"outputs": [
{
"output_type": "stream",
"text": [
"/covid-19\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Rtmd4a64W9rg",
"colab_type": "text"
},
"source": [
"## Download dataset from Google Drive"
]
},
{
"cell_type": "code",
"metadata": {
"id": "dIF4CfIZcZ14",
"colab_type": "code",
"colab": {}
},
"source": [
"# import pyDrive\n",
"from pydrive.auth import GoogleAuth\n",
"from pydrive.drive import GoogleDrive\n",
"from google.colab import auth\n",
"from oauth2client.client import GoogleCredentials\n",
"\n",
"# authenticate and create the PyDrive client.\n",
"auth.authenticate_user()\n",
"gauth = GoogleAuth()\n",
"gauth.credentials = GoogleCredentials.get_application_default()\n",
"drive = GoogleDrive(gauth)"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "K3cXPEw_n1el",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 867
},
"outputId": "5c067829-85a0-4b04-87bf-a7c771a88447"
},
"source": [
"# choose a local (colab) directory to store the data for covid images\n",
"local_download_path = os.path.expanduser('dataset/covid')\n",
"try:\n",
" os.makedirs(local_download_path)\n",
"except: pass\n",
"\n",
"# auto-iterate using the query syntax\n",
"# https://developers.google.com/drive/v2/web/search-parameters\n",
"file_list = drive.ListFile(\n",
" # the parameter q is personal folder share id\n",
" {'q': \"'1mhFxCP2HB8VtXi3_ysxxDP854SehjvLe' in parents\"}).GetList()\n",
"\n",
"for f in file_list:\n",
" # create & download by id.\n",
" print('title: %s, id: %s' % (f['title'], f['id']))\n",
" fname = os.path.join(local_download_path, f['title'])\n",
" print('downloading to {}'.format(fname))\n",
" f_ = drive.CreateFile({'id': f['id']})\n",
" f_.GetContentFile(fname)"
],
"execution_count": 8,
"outputs": [
{
"output_type": "stream",
"text": [
"title: nejmoa2001191_f3-PA.jpeg, id: 1krdKPhjEAReg0Ba5yRKrA30V6OLUyUxt\n",
"downloading to dataset/covid/nejmoa2001191_f3-PA.jpeg\n",
"title: nejmoa2001191_f4.jpeg, id: 1qT3xg5wIO_6wTzfhKAZcEx46H0C_acuU\n",
"downloading to dataset/covid/nejmoa2001191_f4.jpeg\n",
"title: ryct.2020200034.fig5-day0.jpeg, id: 1dJierErYeDivOSKSZEpekg-IG3JLun7F\n",
"downloading to dataset/covid/ryct.2020200034.fig5-day0.jpeg\n",
"title: auntminnie-d-2020_01_28_23_51_6665_2020_01_28_Vietnam_coronavirus.jpeg, id: 1kRq4ii25X91_0gIk0yKIgJE3fjcbeRnO\n",
"downloading to dataset/covid/auntminnie-d-2020_01_28_23_51_6665_2020_01_28_Vietnam_coronavirus.jpeg\n",
"title: 1-s2.0-S0929664620300449-gr2_lrg-b.jpg, id: 1J07b9p_Aaof8FKOyLVgbrCilhTFCPXus\n",
"downloading to dataset/covid/1-s2.0-S0929664620300449-gr2_lrg-b.jpg\n",
"title: lancet-case2b.jpg, id: 1k0aXS9FIU1CDSmlScsJA0P56exijd8xo\n",
"downloading to dataset/covid/lancet-case2b.jpg\n",
"title: nejmoa2001191_f1-PA.jpeg, id: 1C7HWvQTyeUEQG5P8pyu4cHwiHIhfNpJx\n",
"downloading to dataset/covid/nejmoa2001191_f1-PA.jpeg\n",
"title: 1-s2.0-S0929664620300449-gr2_lrg-d.jpg, id: 1Sqkk_jy9dHaUMXfJ9o8OOGusXsoZM3GC\n",
"downloading to dataset/covid/1-s2.0-S0929664620300449-gr2_lrg-d.jpg\n",
"title: ryct.2020200034.fig5-day4.jpeg, id: 1elqC7dGzESqyN6PvyDgJ9iW9_dmD_vt6\n",
"downloading to dataset/covid/ryct.2020200034.fig5-day4.jpeg\n",
"title: lancet-case2a.jpg, id: 1VPBhlJfM4XH-ch5XJ1xW-mc37Gxv4zxZ\n",
"downloading to dataset/covid/lancet-case2a.jpg\n",
"title: ryct.2020200034.fig2.jpeg, id: 10hdXGSREW4ft028E1ueGwHnTQJqhXMlu\n",
"downloading to dataset/covid/ryct.2020200034.fig2.jpeg\n",
"title: nejmc2001573_f1a.jpeg, id: 19XShPsIufUx5DBwUzIIVIhtOYh6yHCuQ\n",
"downloading to dataset/covid/nejmc2001573_f1a.jpeg\n",
"title: radiol.2020200490.fig3.jpeg, id: 1dxuXzRlvdM7gqoqwVt_YGOT2bti0zVy1\n",
"downloading to dataset/covid/radiol.2020200490.fig3.jpeg\n",
"title: nejmc2001573_f1b.jpeg, id: 1CtxJJs7-IE4xUeZmxfTNCuHNUQbLT4sm\n",
"downloading to dataset/covid/nejmc2001573_f1b.jpeg\n",
"title: nCoV-radiol.2020200269.fig1-day7.jpeg, id: 1IV1GPVvZ470tD4pC9KoBwicIe3SoXyvo\n",
"downloading to dataset/covid/nCoV-radiol.2020200269.fig1-day7.jpeg\n",
"title: nejmoa2001191_f5-PA.jpeg, id: 1Vmrk4w_6r5COS2xNU1Xi4sQTx1_MwozE\n",
"downloading to dataset/covid/nejmoa2001191_f5-PA.jpeg\n",
"title: ryct.2020200034.fig5-day7.jpeg, id: 1MRjEydM0SFSjIyFz-vF_PYJ-77NzUpA1\n",
"downloading to dataset/covid/ryct.2020200034.fig5-day7.jpeg\n",
"title: 1-s2.0-S0929664620300449-gr2_lrg-c.jpg, id: 118BEuCGLM6JVZPzWy22y90R4tnDyGPKp\n",
"downloading to dataset/covid/1-s2.0-S0929664620300449-gr2_lrg-c.jpg\n",
"title: radiopedia-covid-19-pneumonia-2.jpg, id: 1_WuUvwmVVQaD4tXTZt1nHDVbbeZz1NBR\n",
"downloading to dataset/covid/radiopedia-covid-19-pneumonia-2.jpg\n",
"title: 1-s2.0-S0929664620300449-gr2_lrg-a.jpg, id: 19_Im59Y5anF-4jM7TkA3fcAb3ULxCKQ9\n",
"downloading to dataset/covid/1-s2.0-S0929664620300449-gr2_lrg-a.jpg\n",
"title: 1-s2.0-S0140673620303706-fx1_lrg.jpg, id: 1D_3kqC6YrtR13eCLeM67AKgqC1tlXrBf\n",
"downloading to dataset/covid/1-s2.0-S0140673620303706-fx1_lrg.jpg\n",
"title: ryct.2020200028.fig1a.jpeg, id: 1sPXtxFm5hUNu5BFCMUQVkZTQGJcAK1Zh\n",
"downloading to dataset/covid/ryct.2020200028.fig1a.jpeg\n",
"title: auntminnie-c-2020_01_28_23_51_6665_2020_01_28_Vietnam_coronavirus.jpeg, id: 1PCKJ-_YmG2GDoDVeXM1OkL7-oIvz8eSg\n",
"downloading to dataset/covid/auntminnie-c-2020_01_28_23_51_6665_2020_01_28_Vietnam_coronavirus.jpeg\n",
"title: auntminnie-a-2020_01_28_23_51_6665_2020_01_28_Vietnam_coronavirus.jpeg, id: 1SYpiZYHiBdXqHf1iJwuihJaIo6XQnrr1\n",
"downloading to dataset/covid/auntminnie-a-2020_01_28_23_51_6665_2020_01_28_Vietnam_coronavirus.jpeg\n",
"title: auntminnie-b-2020_01_28_23_51_6665_2020_01_28_Vietnam_coronavirus.jpeg, id: 1b2hbvAdffpU-wKmErJ1ESShASTHF-OS7\n",
"downloading to dataset/covid/auntminnie-b-2020_01_28_23_51_6665_2020_01_28_Vietnam_coronavirus.jpeg\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "W8KT5cpmI9O7",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 867
},
"outputId": "8269cf12-e013-425e-a4b2-2f6822e18284"
},
"source": [
"# choose a local (colab) directory to store the data for normal images\n",
"local_download_path = os.path.expanduser('dataset/normal')\n",
"try:\n",
" os.makedirs(local_download_path)\n",
"except: pass\n",
"\n",
"# auto-iterate using the query syntax\n",
"# https://developers.google.com/drive/v2/web/search-parameters\n",
"file_list = drive.ListFile(\n",
" # the parameter q is personal folder share id\n",
" {'q': \"'1VhOrJE3gFhj1SJHvuZepFftPDxa0bjFU' in parents\"}).GetList()\n",
"\n",
"for f in file_list:\n",
" # create & download by id.\n",
" print('title: %s, id: %s' % (f['title'], f['id']))\n",
" fname = os.path.join(local_download_path, f['title'])\n",
" print('downloading to {}'.format(fname))\n",
" f_ = drive.CreateFile({'id': f['id']})\n",
" f_.GetContentFile(fname)"
],
"execution_count": 9,
"outputs": [
{
"output_type": "stream",
"text": [
"title: IM-0033-0001-0001.jpeg, id: 1Nvz1PdVCbyGJGSoevz3KgG70A6r1QiJU\n",
"downloading to dataset/normal/IM-0033-0001-0001.jpeg\n",
"title: person939_bacteria_2864.jpeg, id: 1JjNK19qX1-es6edXZPTxeLTTlgJ1AJz3\n",
"downloading to dataset/normal/person939_bacteria_2864.jpeg\n",
"title: person1830_bacteria_4693.jpeg, id: 1MTjAxmvNSofIbpcH4KqTam6jIXucPTuO\n",
"downloading to dataset/normal/person1830_bacteria_4693.jpeg\n",
"title: person934_virus_1595.jpeg, id: 13aQLU7CjsTIGH2-6bhVg8emsL-_rA5CA\n",
"downloading to dataset/normal/person934_virus_1595.jpeg\n",
"title: person339_bacteria_1574.jpeg, id: 1VrOn7yDpD0v2aUqBIaNxs9klIKvaWebM\n",
"downloading to dataset/normal/person339_bacteria_1574.jpeg\n",
"title: person1599_virus_2776.jpeg, id: 1wpKZffayED2fF_gZy3pDS-A98ZToyiYV\n",
"downloading to dataset/normal/person1599_virus_2776.jpeg\n",
"title: person378_virus_761.jpeg, id: 1vrqmrCajESr1w2CwohvbzAFKVBuxnuiV\n",
"downloading to dataset/normal/person378_virus_761.jpeg\n",
"title: NORMAL2-IM-1179-0001.jpeg, id: 193NGjKrRrHwyU6D9okF14GjfK79shiU8\n",
"downloading to dataset/normal/NORMAL2-IM-1179-0001.jpeg\n",
"title: person612_bacteria_2478.jpeg, id: 1teU-F0VX2eQEECXTEo5UJDO4amk-ZFeH\n",
"downloading to dataset/normal/person612_bacteria_2478.jpeg\n",
"title: NORMAL2-IM-0696-0001.jpeg, id: 1rkwB3Q8HpBGkN8cWhJnA1H7Vr9nrIzRw\n",
"downloading to dataset/normal/NORMAL2-IM-0696-0001.jpeg\n",
"title: person1102_bacteria_3043.jpeg, id: 1hfKIOwAv3wvGN7XWGOeT2dmc7sOhMwc3\n",
"downloading to dataset/normal/person1102_bacteria_3043.jpeg\n",
"title: person525_bacteria_2216.jpeg, id: 1G2VbQcUX9zNYOrtXiCBbmWlI1j0pbJLa\n",
"downloading to dataset/normal/person525_bacteria_2216.jpeg\n",
"title: person989_virus_1667.jpeg, id: 13FxbHLC0fiOCU_P8HGafj25X7cFbd1e-\n",
"downloading to dataset/normal/person989_virus_1667.jpeg\n",
"title: person925_virus_1582.jpeg, id: 16l8SD964RWcdqDbEe8ceimeOc7NMEgp8\n",
"downloading to dataset/normal/person925_virus_1582.jpeg\n",
"title: person1935_bacteria_4849.jpeg, id: 1pjZ6zguQorf0b6Na1HZaetNyzKvfEFdG\n",
"downloading to dataset/normal/person1935_bacteria_4849.jpeg\n",
"title: person651_bacteria_2543.jpeg, id: 1hApcfKhbhmb3Q2rxzbb_wWOS23dGkJzX\n",
"downloading to dataset/normal/person651_bacteria_2543.jpeg\n",
"title: NORMAL2-IM-0315-0001.jpeg, id: 1iqeXhyI3orZBQ9DwWlCO4cHXx-wryqlp\n",
"downloading to dataset/normal/NORMAL2-IM-0315-0001.jpeg\n",
"title: person438_bacteria_1893.jpeg, id: 1xSyXO2LMx8qLpBcuvvti4n8hgJRCf1Jz\n",
"downloading to dataset/normal/person438_bacteria_1893.jpeg\n",
"title: person1290_virus_2215.jpeg, id: 1vR9MyxKGIbaFl9PCRx6TrkfClgB2qLDR\n",
"downloading to dataset/normal/person1290_virus_2215.jpeg\n",
"title: IM-0466-0001.jpeg, id: 1JrdtfOYZ7J8y0GdRrDE51TTAFtUh_-R8\n",
"downloading to dataset/normal/IM-0466-0001.jpeg\n",
"title: IM-0240-0001.jpeg, id: 1DhhUYSHCbZllVSXPTF7HL4UEUn-mWVUp\n",
"downloading to dataset/normal/IM-0240-0001.jpeg\n",
"title: person259_bacteria_1220.jpeg, id: 1Soej30qM69IjulzJktnp1GGjN5zPk2wr\n",
"downloading to dataset/normal/person259_bacteria_1220.jpeg\n",
"title: person1558_bacteria_4066.jpeg, id: 18AteswBHmSn-UbJ2nk83AXpLzWxMJl7D\n",
"downloading to dataset/normal/person1558_bacteria_4066.jpeg\n",
"title: NORMAL2-IM-0869-0001.jpeg, id: 1uQMN_PJHwQaDhkpv5yXrHGPYMHKlWzJl\n",
"downloading to dataset/normal/NORMAL2-IM-0869-0001.jpeg\n",
"title: person1_bacteria_2.jpeg, id: 1Nm3wSOoDsF1ok-hBgnS_uvysSj-MllNY\n",
"downloading to dataset/normal/person1_bacteria_2.jpeg\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "YEKbbdbJ4n85",
"colab_type": "text"
},
"source": [
"## Parsing Arguments and Initialising Hyperparameters"
]
},
{
"cell_type": "code",
"metadata": {
"id": "8D-V8DA2vKOP",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 54
},
"outputId": "f377a677-af22-4268-ffd9-ac7391540749"
},
"source": [
"# construct the argument parser and parse the arguments\n",
"ap = argparse.ArgumentParser()\n",
"ap.add_argument(\"-d\", \"--dataset\", required=True,\n",
"\thelp=\"dataset/\")\n",
"ap.add_argument(\"-p\", \"--plot\", type=str, default=\"plot.png\",\n",
"\thelp=\"dataset/accuracy plot\")\n",
"ap.add_argument(\"-m\", \"--model\", type=str, default=\"covid19.model\",\n",
"\thelp=\"dataset/accuracy plot\")"
],
"execution_count": 10,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"_StoreAction(option_strings=['-m', '--model'], dest='model', nargs=None, const=None, default='covid19.model', type=<class 'str'>, choices=None, help='dataset/accuracy plot', metavar=None)"
]
},
"metadata": {
"tags": []
},
"execution_count": 10
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "SGmR_Xgj6kJc",
"colab_type": "code",
"colab": {}
},
"source": [
"# pass the argument explicitly\n",
"# use python train_model.py --dataset dataset while running in terminal\n",
"args = vars(ap.parse_args(args=['--dataset', 'dataset']))"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "p0BqzxITUYyv",
"colab_type": "text"
},
"source": [
"## Initialise Initial Learning Rate, Number of Training Epochs and Batch Size Hyperparameters"
]
},
{
"cell_type": "code",
"metadata": {
"id": "69kdahh7xacT",
"colab_type": "code",
"colab": {}
},
"source": [
"# initialize the initial learning rate, number of epochs to train for,\n",
"# and batch size\n",
"INIT_LR = 1e-3\n",
"EPOCHS = 25\n",
"BS = 8"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "_mPXNoPCKZF1",
"colab_type": "code",
"colab": {}
},
"source": [
"# initialise empty lists to store images and labels\n",
"data = []\n",
"labels = []"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "2Jgbz0Wkxb06",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 884
},
"outputId": "53c89751-01f0-4a0c-ad0f-03e739348d6b"
},
"source": [
"# grab the list of images in our dataset directory, then initialize\n",
"# the list of data (i.e., images) and class images\n",
"print(\"[INFO] loading covid images...\")\n",
"imagePaths = list(paths.list_images(args[\"dataset\"]))\n",
"imagePaths"
],
"execution_count": 14,
"outputs": [
{
"output_type": "stream",
"text": [
"[INFO] loading covid images...\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"['dataset/covid/1-s2.0-S0929664620300449-gr2_lrg-a.jpg',\n",
" 'dataset/covid/ryct.2020200028.fig1a.jpeg',\n",
" 'dataset/covid/ryct.2020200034.fig2.jpeg',\n",
" 'dataset/covid/nejmoa2001191_f3-PA.jpeg',\n",
" 'dataset/covid/nCoV-radiol.2020200269.fig1-day7.jpeg',\n",
" 'dataset/covid/nejmoa2001191_f4.jpeg',\n",
" 'dataset/covid/1-s2.0-S0929664620300449-gr2_lrg-b.jpg',\n",
" 'dataset/covid/auntminnie-d-2020_01_28_23_51_6665_2020_01_28_Vietnam_coronavirus.jpeg',\n",
" 'dataset/covid/1-s2.0-S0140673620303706-fx1_lrg.jpg',\n",
" 'dataset/covid/ryct.2020200034.fig5-day0.jpeg',\n",
" 'dataset/covid/auntminnie-b-2020_01_28_23_51_6665_2020_01_28_Vietnam_coronavirus.jpeg',\n",
" 'dataset/covid/lancet-case2b.jpg',\n",
" 'dataset/covid/ryct.2020200034.fig5-day4.jpeg',\n",
" 'dataset/covid/radiopedia-covid-19-pneumonia-2.jpg',\n",
" 'dataset/covid/nejmoa2001191_f1-PA.jpeg',\n",
" 'dataset/covid/nejmoa2001191_f5-PA.jpeg',\n",
" 'dataset/covid/auntminnie-a-2020_01_28_23_51_6665_2020_01_28_Vietnam_coronavirus.jpeg',\n",
" 'dataset/covid/auntminnie-c-2020_01_28_23_51_6665_2020_01_28_Vietnam_coronavirus.jpeg',\n",
" 'dataset/covid/1-s2.0-S0929664620300449-gr2_lrg-d.jpg',\n",
" 'dataset/covid/lancet-case2a.jpg',\n",
" 'dataset/covid/radiol.2020200490.fig3.jpeg',\n",
" 'dataset/covid/nejmc2001573_f1a.jpeg',\n",
" 'dataset/covid/1-s2.0-S0929664620300449-gr2_lrg-c.jpg',\n",
" 'dataset/covid/nejmc2001573_f1b.jpeg',\n",
" 'dataset/covid/ryct.2020200034.fig5-day7.jpeg',\n",
" 'dataset/normal/IM-0033-0001-0001.jpeg',\n",
" 'dataset/normal/person1599_virus_2776.jpeg',\n",
" 'dataset/normal/person1102_bacteria_3043.jpeg',\n",
" 'dataset/normal/NORMAL2-IM-0696-0001.jpeg',\n",
" 'dataset/normal/person1290_virus_2215.jpeg',\n",
" 'dataset/normal/IM-0240-0001.jpeg',\n",
" 'dataset/normal/person525_bacteria_2216.jpeg',\n",
" 'dataset/normal/NORMAL2-IM-1179-0001.jpeg',\n",
" 'dataset/normal/person651_bacteria_2543.jpeg',\n",
" 'dataset/normal/person612_bacteria_2478.jpeg',\n",
" 'dataset/normal/person1830_bacteria_4693.jpeg',\n",
" 'dataset/normal/person438_bacteria_1893.jpeg',\n",
" 'dataset/normal/person934_virus_1595.jpeg',\n",
" 'dataset/normal/person939_bacteria_2864.jpeg',\n",
" 'dataset/normal/person1558_bacteria_4066.jpeg',\n",
" 'dataset/normal/person1_bacteria_2.jpeg',\n",
" 'dataset/normal/person339_bacteria_1574.jpeg',\n",
" 'dataset/normal/IM-0466-0001.jpeg',\n",
" 'dataset/normal/person378_virus_761.jpeg',\n",
" 'dataset/normal/person989_virus_1667.jpeg',\n",
" 'dataset/normal/NORMAL2-IM-0315-0001.jpeg',\n",
" 'dataset/normal/person259_bacteria_1220.jpeg',\n",
" 'dataset/normal/person1935_bacteria_4849.jpeg',\n",
" 'dataset/normal/NORMAL2-IM-0869-0001.jpeg',\n",
" 'dataset/normal/person925_virus_1582.jpeg']"
]
},
"metadata": {
"tags": []
},
"execution_count": 14
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "Bg6iVJN4zXuH",
"colab_type": "code",
"colab": {}
},
"source": [
"# loop over the image paths\n",
"for imagePath in imagePaths:\n",
"\timagePath\n",
"\t# extract the class label from the filename\n",
"\tlabel = imagePath.split(os.path.sep)[-2]\n",
"\n",
"\t# load the image, swap color channels, and resize it to be a fixed\n",
"\t# 224x224 pixels while ignoring aspect ratio\n",
"\timage = cv2.imread(imagePath)\n",
"\timage = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)\n",
"\timage = cv2.resize(image, (224, 224))\n",
"\n",
"\t# update the data and labels lists, respectively\n",
"\tdata.append(image)\n",
"\tlabels.append(label)"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "xngAFjvlzcHU",
"colab_type": "code",
"colab": {}
},
"source": [
"# convert the data and labels to NumPy arrays while scaling the pixel\n",
"# intensities to the range [0, 255]\n",
"data = np.array(data) / 255.0\n",
"labels = np.array(labels)"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "uvXvx669VSFm",
"colab_type": "text"
},
"source": [
"## One-hot Encode Labels and Create Training/Testing Splits"
]
},
{
"cell_type": "code",
"metadata": {
"id": "NtJsUD1_zgM-",
"colab_type": "code",
"colab": {}
},
"source": [
"# perform one-hot encoding on the labels\n",
"lb = LabelBinarizer()\n",
"labels = lb.fit_transform(labels)\n",
"labels = to_categorical(labels)"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "iZZGOF2vzlwF",
"colab_type": "code",
"colab": {}
},
"source": [
"# partition the data into training and testing splits using 80% of\n",
"# the data for training and the remaining 20% for testing\n",
"(trainX, testX, trainY, testY) = train_test_split(data, labels,\n",
"\ttest_size=0.20, stratify=labels, random_state=42)"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "abckXTtZzsi_",
"colab_type": "code",
"colab": {}
},
"source": [
"# initialize the training data augmentation object\n",
"trainAug = ImageDataGenerator(\n",
"\trotation_range=15,\n",
"\tfill_mode=\"nearest\")"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "d3atYyrAWG3y",
"colab_type": "text"
},
"source": [
"## Initialise VGGNet Model and set it up for Fine Tuning"
]
},
{
"cell_type": "code",
"metadata": {
"id": "E-K0TlFjzwIH",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
},
"outputId": "58102cf9-a728-4e9d-cfde-69a655adc199"
},
"source": [
"# load the VGG16 network, ensuring the head FC layer sets are left\n",
"# off\n",
"baseModel = VGG16(weights=\"imagenet\", include_top=False,\n",
"\tinput_tensor=Input(shape=(224, 224, 3)))"
],
"execution_count": 20,
"outputs": [
{
"output_type": "stream",
"text": [
"Downloading data from https://github.com/fchollet/deep-learning-models/releases/download/v0.1/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5\n",
"58892288/58889256 [==============================] - 1s 0us/step\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "f539NfIQzzD_",
"colab_type": "code",
"colab": {}
},
"source": [
"# construct the head of the model that will be placed on top of the\n",
"# the base model\n",
"headModel = baseModel.output\n",
"headModel = AveragePooling2D(pool_size=(4, 4))(headModel)\n",
"headModel = Flatten(name=\"flatten\")(headModel)\n",
"headModel = Dense(64, activation=\"relu\")(headModel)\n",
"headModel = Dropout(0.5)(headModel)\n",
"headModel = Dense(2, activation=\"softmax\")(headModel)"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "1bPTJ-1zz4Rr",
"colab_type": "code",
"colab": {}
},
"source": [
"# place the head FC model on top of the base model (this will become\n",
"# the actual model we will train)\n",
"model = Model(inputs=baseModel.input, outputs=headModel)"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "0F1S774K0-IL",
"colab_type": "code",
"colab": {}
},
"source": [
"# loop over all layers in the base model and freeze them so they will\n",
"# *not* be updated during the first training process\n",
"for layer in baseModel.layers:\n",
"\tlayer.trainable = False"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "-57TIjytWdhW",
"colab_type": "text"
},
"source": [
"## Compile and Train our COVID-19 (Novel Coronavirus) Deep Learning Model"
]
},
{
"cell_type": "code",
"metadata": {
"id": "bZAhBL-r1CQq",
"colab_type": "code",
"outputId": "b93ad45a-fdc6-4a61-c30e-c7cf08ab0470",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
}
},
"source": [
"# compile our model\n",
"print(\"[INFO] compiling model...\")\n",
"opt = Adam(lr=INIT_LR, decay=INIT_LR / EPOCHS)\n",
"# given that this is a 2-class problem, we use \"binary_crossentropy\" loss\n",
"# rather than categorical crossentropy\n",
"model.compile(loss=\"binary_crossentropy\", optimizer=opt,\n",
"\tmetrics=[\"accuracy\"])"
],
"execution_count": 36,
"outputs": [
{
"output_type": "stream",
"text": [
"[INFO] compiling model...\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "DcsiBdEiWuCl",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 969
},
"outputId": "f55ba765-32a2-438b-e9b0-07ff24d3317e"
},
"source": [
"# train the head of the network\n",
"print(\"[INFO] training head...\")\n",
"H = model.fit_generator(\n",
"\ttrainAug.flow(trainX, trainY, batch_size=BS),\n",
"\tsteps_per_epoch=len(trainX) // BS,\n",
"\tvalidation_data=(testX, testY),\n",
"\tvalidation_steps=len(testX) // BS,\n",
"\tepochs=EPOCHS)"
],
"execution_count": 37,
"outputs": [
{
"output_type": "stream",
"text": [
"[INFO] training head...\n",
"WARNING:tensorflow:sample_weight modes were coerced from\n",
" ...\n",
" to \n",
" ['...']\n",
"Train for 5 steps, validate on 10 samples\n",
"Epoch 1/25\n",
"5/5 [==============================] - 1s 239ms/step - loss: 0.8424 - accuracy: 0.4250 - val_loss: 0.5346 - val_accuracy: 0.8750\n",
"Epoch 2/25\n",
"5/5 [==============================] - 0s 96ms/step - loss: 0.8260 - accuracy: 0.4500 - val_loss: 0.5212 - val_accuracy: 0.8750\n",
"Epoch 3/25\n",
"5/5 [==============================] - 0s 96ms/step - loss: 0.7049 - accuracy: 0.5750 - val_loss: 0.5077 - val_accuracy: 0.8750\n",
"Epoch 4/25\n",
"5/5 [==============================] - 1s 105ms/step - loss: 0.7264 - accuracy: 0.5500 - val_loss: 0.4955 - val_accuracy: 1.0000\n",
"Epoch 5/25\n",
"5/5 [==============================] - 0s 97ms/step - loss: 0.6754 - accuracy: 0.5750 - val_loss: 0.4844 - val_accuracy: 0.8750\n",
"Epoch 6/25\n",
"5/5 [==============================] - 0s 92ms/step - loss: 0.6840 - accuracy: 0.5250 - val_loss: 0.4729 - val_accuracy: 0.8750\n",
"Epoch 7/25\n",
"5/5 [==============================] - 0s 93ms/step - loss: 0.6164 - accuracy: 0.6250 - val_loss: 0.4649 - val_accuracy: 0.7500\n",
"Epoch 8/25\n",
"5/5 [==============================] - 0s 92ms/step - loss: 0.6127 - accuracy: 0.7000 - val_loss: 0.4545 - val_accuracy: 0.8750\n",
"Epoch 9/25\n",
"5/5 [==============================] - 0s 95ms/step - loss: 0.6272 - accuracy: 0.6500 - val_loss: 0.4394 - val_accuracy: 1.0000\n",
"Epoch 10/25\n",
"5/5 [==============================] - 0s 89ms/step - loss: 0.6016 - accuracy: 0.7500 - val_loss: 0.4345 - val_accuracy: 0.8750\n",
"Epoch 11/25\n",
"5/5 [==============================] - 0s 92ms/step - loss: 0.5953 - accuracy: 0.7750 - val_loss: 0.4306 - val_accuracy: 0.7500\n",
"Epoch 12/25\n",
"5/5 [==============================] - 0s 89ms/step - loss: 0.5190 - accuracy: 0.8000 - val_loss: 0.4247 - val_accuracy: 0.7500\n",
"Epoch 13/25\n",
"5/5 [==============================] - 0s 92ms/step - loss: 0.5400 - accuracy: 0.7000 - val_loss: 0.4188 - val_accuracy: 0.7500\n",
"Epoch 14/25\n",
"5/5 [==============================] - 0s 94ms/step - loss: 0.5261 - accuracy: 0.7750 - val_loss: 0.4004 - val_accuracy: 0.8750\n",
"Epoch 15/25\n",
"5/5 [==============================] - 0s 89ms/step - loss: 0.4788 - accuracy: 0.8500 - val_loss: 0.3845 - val_accuracy: 0.8750\n",
"Epoch 16/25\n",
"5/5 [==============================] - 0s 97ms/step - loss: 0.4756 - accuracy: 0.9000 - val_loss: 0.3694 - val_accuracy: 0.8750\n",
"Epoch 17/25\n",
"5/5 [==============================] - 0s 96ms/step - loss: 0.4332 - accuracy: 0.8750 - val_loss: 0.3663 - val_accuracy: 0.8750\n",
"Epoch 18/25\n",
"5/5 [==============================] - 0s 95ms/step - loss: 0.4809 - accuracy: 0.8500 - val_loss: 0.3716 - val_accuracy: 0.8750\n",
"Epoch 19/25\n",
"5/5 [==============================] - 0s 94ms/step - loss: 0.4914 - accuracy: 0.8000 - val_loss: 0.3566 - val_accuracy: 0.8750\n",
"Epoch 20/25\n",
"5/5 [==============================] - 0s 94ms/step - loss: 0.4127 - accuracy: 0.8750 - val_loss: 0.3485 - val_accuracy: 0.8750\n",
"Epoch 21/25\n",
"5/5 [==============================] - 0s 92ms/step - loss: 0.4373 - accuracy: 0.8500 - val_loss: 0.3249 - val_accuracy: 0.8750\n",
"Epoch 22/25\n",
"5/5 [==============================] - 0s 92ms/step - loss: 0.3887 - accuracy: 0.9500 - val_loss: 0.3194 - val_accuracy: 0.8750\n",
"Epoch 23/25\n",
"5/5 [==============================] - 0s 97ms/step - loss: 0.3510 - accuracy: 0.9500 - val_loss: 0.3091 - val_accuracy: 0.8750\n",
"Epoch 24/25\n",
"5/5 [==============================] - 0s 94ms/step - loss: 0.4049 - accuracy: 0.8500 - val_loss: 0.2994 - val_accuracy: 0.8750\n",
"Epoch 25/25\n",
"5/5 [==============================] - 0s 93ms/step - loss: 0.4306 - accuracy: 0.8250 - val_loss: 0.3125 - val_accuracy: 0.8750\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "4qi5pRFaYafc",
"colab_type": "text"
},
"source": [
"## Evaluate our Model"
]
},
{
"cell_type": "code",
"metadata": {
"id": "LGEhLOje1lZD",
"colab_type": "code",
"outputId": "8b798678-9900-4dbc-993f-c49f3adbf9ef",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
}
},
"source": [
"# make predictions on the testing set\n",
"print(\"[INFO] evaluating network...\")\n",
"predIdxs = model.predict(testX, batch_size=BS)"
],
"execution_count": 38,
"outputs": [
{
"output_type": "stream",
"text": [
"[INFO] evaluating network...\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "mgmE_mib_Zu-",
"colab_type": "code",
"colab": {}
},
"source": [
"# for each image in the testing set we need to find the index of the\n",
"# label with corresponding largest predicted probability\n",
"predIdxs = np.argmax(predIdxs, axis=1)"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "vxqO7tst_ffA",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 170
},
"outputId": "f84c55eb-1c5d-4668-c67c-8dfc0ea866ce"
},
"source": [
"# show a nicely formatted classification report\n",
"# using scikit-learn’s helper utility\n",
"print(classification_report(testY.argmax(axis=1), predIdxs,\n",
"\ttarget_names=lb.classes_))"
],
"execution_count": 40,
"outputs": [
{
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" covid 0.83 1.00 0.91 5\n",
" normal 1.00 0.80 0.89 5\n",
"\n",
" accuracy 0.90 10\n",
" macro avg 0.92 0.90 0.90 10\n",
"weighted avg 0.92 0.90 0.90 10\n",
"\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "6KLseFOJYz8P",
"colab_type": "text"
},
"source": [
"## Compute a Confusion Matrix for Further Statistical Evaluation"
]
},
{
"cell_type": "code",
"metadata": {
"id": "r6u2XiVj_iXx",
"colab_type": "code",
"colab": {}
},
"source": [
"# compute the confusion matrix and and use it to derive the raw\n",
"# accuracy, sensitivity, and specificity\n",
"cm = confusion_matrix(testY.argmax(axis=1), predIdxs)\n",
"total = sum(sum(cm))\n",
"acc = (cm[0, 0] + cm[1, 1]) / total\n",
"sensitivity = cm[0, 0] / (cm[0, 0] + cm[0, 1])\n",
"specificity = cm[1, 1] / (cm[1, 0] + cm[1, 1])"
],
"execution_count": 0,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "MYkydJsk_nNE",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 102
},
"outputId": "527ed4b6-308b-45ef-c0c7-37e476443fc9"
},
"source": [
"# show the confusion matrix, accuracy, sensitivity, and specificity\n",
"print(cm)\n",
"print(\"accuracy: {:.4f}\".format(acc))\n",
"print(\"sensitivity: {:.4f}\".format(sensitivity))\n",
"print(\"specificity: {:.4f}\".format(specificity))"
],
"execution_count": 42,
"outputs": [
{
"output_type": "stream",
"text": [
"[[5 0]\n",
" [1 4]]\n",
"accuracy: 0.9000\n",
"sensitivity: 1.0000\n",
"specificity: 0.8000\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "3e2UzBGYZP3b",
"colab_type": "text"
},
"source": [
"## Plot our Training Accuracy/Loss History for Inspection"
]
},
{
"cell_type": "code",
"metadata": {
"id": "_tnWWhE-_qhR",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 626
},
"outputId": "7654f489-f00f-4af7-dbb6-92f0b625aa1b"
},
"source": [
"# plot the training loss and accuracy\n",
"N = EPOCHS\n",
"plt.style.use(\"ggplot\")\n",
"plt.figure(figsize=(20,10))\n",
"plt.plot(np.arange(0, N), H.history[\"loss\"], label=\"train_loss\")\n",
"plt.plot(np.arange(0, N), H.history[\"val_loss\"], label=\"val_loss\")\n",
"plt.plot(np.arange(0, N), H.history[\"accuracy\"], label=\"train_acc\")\n",
"plt.plot(np.arange(0, N), H.history[\"val_accuracy\"], label=\"val_acc\")\n",
"plt.title(\"Training Loss and Accuracy on COVID-19 Dataset\")\n",
"plt.xlabel(\"Epoch #\")\n",
"plt.ylabel(\"Loss/Accuracy\")\n",
"plt.legend(loc=\"lower left\")\n",
"plt.savefig(args[\"plot\"])\n"
],
"execution_count": 43,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n3okTJ8Tdd98tMjMzhVqtFuHh4eLiiy8W//3vf8fd7mjp9ukl26PGK9seff3L5XIRHh4uTCaT+MEP\nfjCmaHwyaWlp4x5Pp17ifs2aNSIiIkKo1WpRWFgonn322Sm3O1pmDkDIZDIRGhoqioqKxPe+9z2x\nd+/eMevu379frF27Vuj1epGQkCB++MMfiptuumnM66u1tVVceOGFwmAwjPkeTfWe9tBDD4n8/Hxh\nMBhEWFiYWLZs2RnH4nPPPSeKi4uFRqPxfC+ffvppz3Kz2SyMRqPQarVnPDdERBTcZELMUoMiERER\nTWlkZAQ5OTm46qqr8Nhjj0kdh/xMXV0dCgoKUFlZOaYgm4iIiEgqPLWNiIjIh95//30cPXoURqMR\ndrsdv/zlL7F3716sX79e6mjkR4aGhtDV1YV77rkHK1eu5CASERER+Q0OJBEREfnQyMgIHn74Yeze\nvRsqlQoFBQXYtm3buH0/FLz+8Ic/4KabbkJ+fj7+8pe/SB2HiIiIyIOnthERERERERER0bTw0gtE\nRERERERERDQtHEgiIiIiIiIiIqJp4UASERERERERERFNy5wv2z506JDUEbwiJiYGXV1dUscgmvN4\nLBF5D48nIu/gsUTkHTyWiLxnquMpKSlpwmWckURERERERERERNPCgSQiIiIiIiIiIpoWDiQRERER\nEREREdG0cCCJiIiIiIiIiIimhQNJREREREREREQ0LRxIIiIiIiIiIiKiaeFAEhERERERERERTQsH\nkoiIiIiIiIiIaFo4kERERERERERERNPCgSQiIiIiIiIiIpoWDiQREREREREREdG0cCCJiIiIiIiI\niIimhQNJREREREREREQ0LRxIIiIiIiIiIiKiaeFAEhERERERERERTQsHkoiIiIiIiIiIaFo4kERE\nRERERERERNPCgSQiIiIiIiIiIpoWDiQREREREREREdG0KH2xk6effho2mw3h4eF47LHHzlguhMBL\nL72EiooKaDQa3HbbbViwYIEvohERERERERER0TT5ZEbSihUrsHHjxgmXV1RU4PDhw/jVr36FDRs2\n4Pnnn/dFLCIiIiIiIiIimgGfDCTl5eUhJCRkwuUWiwXLli2DTCZDVlYW+vv7cfz4cV9EIyIiIiIi\nIiKiafKLjqRjx44hJibG83V0dDSOHTsmYSKi2Tc4OIi//vWvOHLkiNRRiOa8jz/+GLt27ZI6BhER\n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\n",
"text/plain": [
"<Figure size 1440x720 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "H3A3s_MRZVkm",
"colab_type": "text"
},
"source": [
"## Serialize our tf.keras COVID-19 Classifier Model to Disk"
]
},
{
"cell_type": "code",
"metadata": {
"id": "bi9Ly3qc_ua-",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "ce7cb2ad-72a0-4baf-83f9-ea898b7f410a"
},
"source": [
"# serialize the model to disk\n",
"print(\"[INFO] saving COVID-19 detector model...\")\n",
"model.save(args[\"model\"], save_format=\"h5\")"
],
"execution_count": 44,
"outputs": [
{
"output_type": "stream",
"text": [
"[INFO] saving COVID-19 detector model...\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "EmdOBieJZzai",
"colab_type": "code",
"colab": {}
},
"source": [
""
],
"execution_count": 0,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment