diff --git a/03_classification.ipynb b/03_classification.ipynb index 4d804c8..91164a3 100644 --- a/03_classification.ipynb +++ b/03_classification.ipynb @@ -47,6 +47,10 @@ "import sys\n", "assert sys.version_info >= (3, 5)\n", "\n", + "# Is this notebook running on Colab or Kaggle?\n", + "IS_COLAB = \"google.colab\" in sys.modules\n", + "IS_KAGGLE = \"kaggle_secrets\" in sys.modules\n", + "\n", "# Scikit-Learn ≥0.20 is required\n", "import sklearn\n", "assert sklearn.__version__ >= \"0.20\"\n", @@ -2333,12 +2337,9 @@ "metadata": {}, "outputs": [], "source": [ - "# if running this notebook on Colab, we just pip install urlextract\n", - "try:\n", - " import google.colab\n", - " !pip install -q -U urlextract\n", - "except ImportError:\n", - " pass # not running on Colab" + "# if running this notebook on Colab or Kaggle, we just pip install urlextract\n", + "if IS_COLAB or IS_KAGGLE:\n", + " !pip install -q -U urlextract" ] }, { @@ -2604,7 +2605,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.9" + "version": "3.7.10" }, "nav_menu": {}, "toc": { diff --git a/13_loading_and_preprocessing_data.ipynb b/13_loading_and_preprocessing_data.ipynb index 744ccb1..8d31e42 100644 --- a/13_loading_and_preprocessing_data.ipynb +++ b/13_loading_and_preprocessing_data.ipynb @@ -47,18 +47,18 @@ "import sys\n", "assert sys.version_info >= (3, 5)\n", "\n", + "# Is this notebook running on Colab or Kaggle?\n", + "IS_COLAB = \"google.colab\" in sys.modules\n", + "IS_KAGGLE = \"kaggle_secrets\" in sys.modules\n", + "\n", + "if IS_COLAB or IS_KAGGLE:\n", + " !pip install -q -U tfx==0.21.2\n", + " print(\"You can safely ignore the package incompatibility errors.\")\n", + "\n", "# Scikit-Learn ≥0.20 is required\n", "import sklearn\n", "assert sklearn.__version__ >= \"0.20\"\n", "\n", - "try:\n", - " # %tensorflow_version only exists in Colab.\n", - " %tensorflow_version 2.x\n", - " !pip install -q -U tfx==0.21.2\n", - " print(\"You can safely ignore the package incompatibility errors.\")\n", - "except Exception:\n", - " pass\n", - "\n", "# TensorFlow ≥2.0 is required\n", "import tensorflow as tf\n", "from tensorflow import keras\n", @@ -2769,7 +2769,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.9" + "version": "3.7.10" }, "nav_menu": { "height": "264px", diff --git a/14_deep_computer_vision_with_cnns.ipynb b/14_deep_computer_vision_with_cnns.ipynb index c1b9e2f..2122d2b 100644 --- a/14_deep_computer_vision_with_cnns.ipynb +++ b/14_deep_computer_vision_with_cnns.ipynb @@ -49,17 +49,14 @@ "import sys\n", "assert sys.version_info >= (3, 5)\n", "\n", + "# Is this notebook running on Colab or Kaggle?\n", + "IS_COLAB = \"google.colab\" in sys.modules\n", + "IS_KAGGLE = \"kaggle_secrets\" in sys.modules\n", + "\n", "# Scikit-Learn ≥0.20 is required\n", "import sklearn\n", "assert sklearn.__version__ >= \"0.20\"\n", "\n", - "try:\n", - " # %tensorflow_version only exists in Colab.\n", - " %tensorflow_version 2.x\n", - " IS_COLAB = True\n", - "except Exception:\n", - " IS_COLAB = False\n", - "\n", "# TensorFlow ≥2.0 is required\n", "import tensorflow as tf\n", "from tensorflow import keras\n", @@ -69,6 +66,8 @@ " print(\"No GPU was detected. CNNs can be very slow without a GPU.\")\n", " if IS_COLAB:\n", " print(\"Go to Runtime > Change runtime and select a GPU hardware accelerator.\")\n", + " if IS_KAGGLE:\n", + " print(\"Go to Settings > Accelerator and select GPU.\")\n", "\n", "# Common imports\n", "import numpy as np\n", @@ -1366,7 +1365,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.9" + "version": "3.7.10" }, "nav_menu": {}, "toc": { diff --git a/15_processing_sequences_using_rnns_and_cnns.ipynb b/15_processing_sequences_using_rnns_and_cnns.ipynb index b846b42..2cd2c80 100644 --- a/15_processing_sequences_using_rnns_and_cnns.ipynb +++ b/15_processing_sequences_using_rnns_and_cnns.ipynb @@ -49,17 +49,14 @@ "import sys\n", "assert sys.version_info >= (3, 5)\n", "\n", + "# Is this notebook running on Colab or Kaggle?\n", + "IS_COLAB = \"google.colab\" in sys.modules\n", + "IS_KAGGLE = \"kaggle_secrets\" in sys.modules\n", + "\n", "# Scikit-Learn ≥0.20 is required\n", "import sklearn\n", "assert sklearn.__version__ >= \"0.20\"\n", "\n", - "try:\n", - " # %tensorflow_version only exists in Colab.\n", - " %tensorflow_version 2.x\n", - " IS_COLAB = True\n", - "except Exception:\n", - " IS_COLAB = False\n", - "\n", "# TensorFlow ≥2.0 is required\n", "import tensorflow as tf\n", "from tensorflow import keras\n", @@ -69,6 +66,8 @@ " print(\"No GPU was detected. LSTMs and CNNs can be very slow without a GPU.\")\n", " if IS_COLAB:\n", " print(\"Go to Runtime > Change runtime and select a GPU hardware accelerator.\")\n", + " if IS_KAGGLE:\n", + " print(\"Go to Settings > Accelerator and select GPU.\")\n", "\n", "# Common imports\n", "import numpy as np\n", @@ -2018,7 +2017,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.9" + "version": "3.7.10" }, "nav_menu": {}, "toc": { diff --git a/16_nlp_with_rnns_and_attention.ipynb b/16_nlp_with_rnns_and_attention.ipynb index 8157544..2f4b870 100644 --- a/16_nlp_with_rnns_and_attention.ipynb +++ b/16_nlp_with_rnns_and_attention.ipynb @@ -52,19 +52,18 @@ "import sys\n", "assert sys.version_info >= (3, 5)\n", "\n", + "# Is this notebook running on Colab or Kaggle?\n", + "IS_COLAB = \"google.colab\" in sys.modules\n", + "IS_KAGGLE = \"kaggle_secrets\" in sys.modules\n", + "\n", + "if IS_COLAB:\n", + " !pip install -q -U tensorflow-addons\n", + " !pip install -q -U transformers\n", + "\n", "# Scikit-Learn ≥0.20 is required\n", "import sklearn\n", "assert sklearn.__version__ >= \"0.20\"\n", "\n", - "try:\n", - " # %tensorflow_version only exists in Colab.\n", - " %tensorflow_version 2.x\n", - " !pip install -q -U tensorflow-addons\n", - " !pip install -q -U transformers\n", - " IS_COLAB = True\n", - "except Exception:\n", - " IS_COLAB = False\n", - "\n", "# TensorFlow ≥2.0 is required\n", "import tensorflow as tf\n", "from tensorflow import keras\n", @@ -74,6 +73,8 @@ " print(\"No GPU was detected. LSTMs and CNNs can be very slow without a GPU.\")\n", " if IS_COLAB:\n", " print(\"Go to Runtime > Change runtime and select a GPU hardware accelerator.\")\n", + " if IS_KAGGLE:\n", + " print(\"Go to Settings > Accelerator and select GPU.\")\n", "\n", "# Common imports\n", "import numpy as np\n", @@ -2751,7 +2752,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.9" + "version": "3.7.10" }, "nav_menu": {}, "toc": { diff --git a/17_autoencoders_and_gans.ipynb b/17_autoencoders_and_gans.ipynb index 40d6bbe..52fc1a5 100644 --- a/17_autoencoders_and_gans.ipynb +++ b/17_autoencoders_and_gans.ipynb @@ -49,17 +49,14 @@ "import sys\n", "assert sys.version_info >= (3, 5)\n", "\n", + "# Is this notebook running on Colab or Kaggle?\n", + "IS_COLAB = \"google.colab\" in sys.modules\n", + "IS_KAGGLE = \"kaggle_secrets\" in sys.modules\n", + "\n", "# Scikit-Learn ≥0.20 is required\n", "import sklearn\n", "assert sklearn.__version__ >= \"0.20\"\n", "\n", - "try:\n", - " # %tensorflow_version only exists in Colab.\n", - " %tensorflow_version 2.x\n", - " IS_COLAB = True\n", - "except Exception:\n", - " IS_COLAB = False\n", - "\n", "# TensorFlow ≥2.0 is required\n", "import tensorflow as tf\n", "from tensorflow import keras\n", @@ -69,6 +66,8 @@ " print(\"No GPU was detected. LSTMs and CNNs can be very slow without a GPU.\")\n", " if IS_COLAB:\n", " print(\"Go to Runtime > Change runtime and select a GPU hardware accelerator.\")\n", + " if IS_KAGGLE:\n", + " print(\"Go to Settings > Accelerator and select GPU.\")\n", "\n", "# Common imports\n", "import numpy as np\n", @@ -1773,7 +1772,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.9" + "version": "3.7.10" }, "nav_menu": { "height": "381px", diff --git a/18_reinforcement_learning.ipynb b/18_reinforcement_learning.ipynb index 29b1f53..67483b3 100644 --- a/18_reinforcement_learning.ipynb +++ b/18_reinforcement_learning.ipynb @@ -32,13 +32,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# Setup" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ + "# Setup\n", "First, let's import a few common modules, ensure MatplotLib plots figures inline and prepare a function to save the figures. We also check that Python 3.5 or later is installed (although Python 2.x may work, it is deprecated so we strongly recommend you use Python 3 instead), as well as Scikit-Learn ≥0.20 and TensorFlow ≥2.0." ] }, @@ -52,19 +46,18 @@ "import sys\n", "assert sys.version_info >= (3, 5)\n", "\n", + "# Is this notebook running on Colab or Kaggle?\n", + "IS_COLAB = \"google.colab\" in sys.modules\n", + "IS_KAGGLE = \"kaggle_secrets\" in sys.modules\n", + "\n", + "if IS_COLAB or IS_KAGGLE:\n", + " !apt update && apt install -y libpq-dev libsdl2-dev swig xorg-dev xvfb\n", + " !pip install -q -U tf-agents pyvirtualdisplay gym[atari,box2d]\n", + "\n", "# Scikit-Learn ≥0.20 is required\n", "import sklearn\n", "assert sklearn.__version__ >= \"0.20\"\n", "\n", - "try:\n", - " # %tensorflow_version only exists in Colab.\n", - " %tensorflow_version 2.x\n", - " !apt update && apt install -y libpq-dev libsdl2-dev swig xorg-dev xvfb\n", - " !pip install -q -U tf-agents pyvirtualdisplay gym[atari,box2d]\n", - " IS_COLAB = True\n", - "except Exception:\n", - " IS_COLAB = False\n", - "\n", "# TensorFlow ≥2.0 is required\n", "import tensorflow as tf\n", "from tensorflow import keras\n", @@ -74,6 +67,8 @@ " print(\"No GPU was detected. CNNs can be very slow without a GPU.\")\n", " if IS_COLAB:\n", " print(\"Go to Runtime > Change runtime and select a GPU hardware accelerator.\")\n", + " if IS_KAGGLE:\n", + " print(\"Go to Settings > Accelerator and select GPU.\")\n", "\n", "# Common imports\n", "import numpy as np\n", @@ -3226,7 +3221,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.9" + "version": "3.7.10" } }, "nbformat": 4, diff --git a/19_training_and_deploying_at_scale.ipynb b/19_training_and_deploying_at_scale.ipynb index 031cb2d..1906153 100644 --- a/19_training_and_deploying_at_scale.ipynb +++ b/19_training_and_deploying_at_scale.ipynb @@ -46,20 +46,19 @@ "import sys\n", "assert sys.version_info >= (3, 5)\n", "\n", - "# Scikit-Learn ≥0.20 is required\n", - "import sklearn\n", - "assert sklearn.__version__ >= \"0.20\"\n", + "# Is this notebook running on Colab or Kaggle?\n", + "IS_COLAB = \"google.colab\" in sys.modules\n", + "IS_KAGGLE = \"kaggle_secrets\" in sys.modules\n", "\n", - "try:\n", - " # %tensorflow_version only exists in Colab.\n", - " %tensorflow_version 2.x\n", + "if IS_COLAB or IS_KAGGLE:\n", " !echo \"deb http://storage.googleapis.com/tensorflow-serving-apt stable tensorflow-model-server tensorflow-model-server-universal\" > /etc/apt/sources.list.d/tensorflow-serving.list\n", " !curl https://storage.googleapis.com/tensorflow-serving-apt/tensorflow-serving.release.pub.gpg | apt-key add -\n", " !apt update && apt-get install -y tensorflow-model-server\n", " !pip install -q -U tensorflow-serving-api\n", - " IS_COLAB = True\n", - "except Exception:\n", - " IS_COLAB = False\n", + "\n", + "# Scikit-Learn ≥0.20 is required\n", + "import sklearn\n", + "assert sklearn.__version__ >= \"0.20\"\n", "\n", "# TensorFlow ≥2.0 is required\n", "import tensorflow as tf\n", @@ -70,6 +69,8 @@ " print(\"No GPU was detected. CNNs can be very slow without a GPU.\")\n", " if IS_COLAB:\n", " print(\"Go to Runtime > Change runtime and select a GPU hardware accelerator.\")\n", + " if IS_KAGGLE:\n", + " print(\"Go to Settings > Accelerator and select GPU.\")\n", "\n", "# Common imports\n", "import numpy as np\n", @@ -1253,7 +1254,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.9" + "version": "3.7.10" } }, "nbformat": 4, diff --git a/README.md b/README.md index 7288291..d9d3eb3 100644 --- a/README.md +++ b/README.md @@ -11,20 +11,17 @@ python. It contains the example code and solutions to the exercises in the secon ## Quick Start ### Want to play with these notebooks online without having to install anything? -Use any of the following services. +Use any of the following services (I recommended Colab or Kaggle, since they offer free GPUs and TPUs). -**WARNING**: Please be aware that these services provide temporary environments: anything you do will be deleted after a while, so make sure you download any data you care about. +**WARNING**: _Please be aware that these services provide temporary environments: anything you do will be deleted after a while, so make sure you download any data you care about._ -* **Recommended**: open this repository in [Colaboratory](https://colab.research.google.com/github/ageron/handson-ml2/blob/master/): - +* Open In Colab -* Or open it in [Binder](https://mybinder.org/v2/gh/ageron/handson-ml2/master): - +* Open in Kaggle - * _Note_: Most of the time, Binder starts up quickly and works great, but when handson-ml2 is updated, Binder creates a new environment from scratch, and this can take quite some time. +* Launch binder -* Or open it in [Deepnote](https://beta.deepnote.com/launch?template=data-science&url=https%3A//github.com/ageron/handson-ml2/blob/master/index.ipynb): - +* Launch in Deepnote ### Just want to quickly look at some notebooks, without executing any code?