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/):
-
+*
-* Or open it in [Binder](https://mybinder.org/v2/gh/ageron/handson-ml2/master):
-
+*
- * _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.
+*
-* 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):
-
+*
### Just want to quickly look at some notebooks, without executing any code?