From 79ce4412122ca2c57ed42a899bba2b2d99b47550 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Geron?= Date: Thu, 22 Sep 2022 19:14:01 +1200 Subject: [PATCH] Update lib versions and add pydot, fixes #29 --- 01_the_machine_learning_landscape.ipynb | 48 +++++++-------- 02_end_to_end_machine_learning_project.ipynb | 5 +- 03_classification.ipynb | 9 ++- 04_training_linear_models.ipynb | 5 +- 05_support_vector_machines.ipynb | 5 +- 06_decision_trees.ipynb | 5 +- 07_ensemble_learning_and_random_forests.ipynb | 5 +- 08_dimensionality_reduction.ipynb | 5 +- 09_unsupervised_learning.ipynb | 5 +- 10_neural_nets_with_keras.ipynb | 7 ++- 11_training_deep_neural_networks.ipynb | 5 +- ..._models_and_training_with_tensorflow.ipynb | 5 +- 13_loading_and_preprocessing_data.ipynb | 7 ++- 14_deep_computer_vision_with_cnns.ipynb | 7 ++- ...essing_sequences_using_rnns_and_cnns.ipynb | 5 +- 16_nlp_with_rnns_and_attention.ipynb | 5 +- ...toencoders_gans_and_diffusion_models.ipynb | 7 ++- 18_reinforcement_learning.ipynb | 5 +- 19_training_and_deploying_at_scale.ipynb | 6 +- environment.yml | 53 +++++++++-------- requirements.txt | 59 ++++++++++--------- 21 files changed, 145 insertions(+), 118 deletions(-) diff --git a/01_the_machine_learning_landscape.ipynb b/01_the_machine_learning_landscape.ipynb index 8993776..1c748ec 100644 --- a/01_the_machine_learning_landscape.ipynb +++ b/01_the_machine_learning_landscape.ipynb @@ -36,7 +36,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Python 3.7 is required:" + "This project requires Python 3.7 or above:" ] }, { @@ -50,6 +50,7 @@ "outputs": [], "source": [ "import sys\n", + "\n", "assert sys.version_info >= (3, 7)" ] }, @@ -57,7 +58,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Make this notebook's output stable across runs:" + "Scikit-Learn ≥1.0.1 is required:" ] }, { @@ -66,27 +67,10 @@ "metadata": {}, "outputs": [], "source": [ - "import numpy as np\n", - "\n", - "np.random.seed(42)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Scikit-Learn ≥1.0 is required:" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ + "from packaging import version\n", "import sklearn\n", "\n", - "assert sklearn.__version__ >= \"1.0\"" + "assert version.parse(sklearn.__version__) >= version.parse(\"1.0.1\")" ] }, { @@ -98,7 +82,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -111,6 +95,24 @@ "plt.rc('ytick', labelsize=10)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Make this notebook's output stable across runs:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "np.random.seed(42)" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -1713,7 +1715,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.10.6" }, "metadata": { "interpreter": { diff --git a/02_end_to_end_machine_learning_project.ipynb b/02_end_to_end_machine_learning_project.ipynb index e1ee729..c2a34ff 100644 --- a/02_end_to_end_machine_learning_project.ipynb +++ b/02_end_to_end_machine_learning_project.ipynb @@ -76,9 +76,10 @@ "metadata": {}, "outputs": [], "source": [ + "from packaging import version\n", "import sklearn\n", "\n", - "assert sklearn.__version__ >= \"1.0.1\"" + "assert version.parse(sklearn.__version__) >= version.parse(\"1.0.1\")" ] }, { @@ -6257,7 +6258,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.12" + "version": "3.10.6" }, "nav_menu": { "height": "279px", diff --git a/03_classification.ipynb b/03_classification.ipynb index 87ab0d7..e3f8b6f 100644 --- a/03_classification.ipynb +++ b/03_classification.ipynb @@ -66,9 +66,10 @@ "metadata": {}, "outputs": [], "source": [ + "from packaging import version\n", "import sklearn\n", "\n", - "assert sklearn.__version__ >= \"1.0.1\"" + "assert version.parse(sklearn.__version__) >= version.parse(\"1.0.1\")" ] }, { @@ -2465,7 +2466,9 @@ "outputs": [ { "data": { - "text/plain": "0.9763" + "text/plain": [ + "0.9763" + ] }, "execution_count": 101, "metadata": {}, @@ -4581,7 +4584,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.12" + "version": "3.10.6" }, "nav_menu": {}, "toc": { diff --git a/04_training_linear_models.ipynb b/04_training_linear_models.ipynb index 1216721..e00b148 100644 --- a/04_training_linear_models.ipynb +++ b/04_training_linear_models.ipynb @@ -68,9 +68,10 @@ "metadata": {}, "outputs": [], "source": [ + "from packaging import version\n", "import sklearn\n", "\n", - "assert sklearn.__version__ >= \"1.0.1\"" + "assert version.parse(sklearn.__version__) >= version.parse(\"1.0.1\")" ] }, { @@ -2785,7 +2786,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.12" + "version": "3.10.6" }, "nav_menu": {}, "toc": { diff --git a/05_support_vector_machines.ipynb b/05_support_vector_machines.ipynb index ef01ded..42dd42c 100644 --- a/05_support_vector_machines.ipynb +++ b/05_support_vector_machines.ipynb @@ -68,9 +68,10 @@ "metadata": {}, "outputs": [], "source": [ + "from packaging import version\n", "import sklearn\n", "\n", - "assert sklearn.__version__ >= \"1.0.1\"" + "assert version.parse(sklearn.__version__) >= version.parse(\"1.0.1\")" ] }, { @@ -2593,7 +2594,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.10.6" }, "nav_menu": {}, "toc": { diff --git a/06_decision_trees.ipynb b/06_decision_trees.ipynb index 32b07ba..6828451 100644 --- a/06_decision_trees.ipynb +++ b/06_decision_trees.ipynb @@ -68,9 +68,10 @@ "metadata": {}, "outputs": [], "source": [ + "from packaging import version\n", "import sklearn\n", "\n", - "assert sklearn.__version__ >= \"1.0.1\"" + "assert version.parse(sklearn.__version__) >= version.parse(\"1.0.1\")" ] }, { @@ -2019,7 +2020,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.12" + "version": "3.10.6" }, "nav_menu": { "height": "309px", diff --git a/07_ensemble_learning_and_random_forests.ipynb b/07_ensemble_learning_and_random_forests.ipynb index b204628..7849eae 100644 --- a/07_ensemble_learning_and_random_forests.ipynb +++ b/07_ensemble_learning_and_random_forests.ipynb @@ -68,9 +68,10 @@ "metadata": {}, "outputs": [], "source": [ + "from packaging import version\n", "import sklearn\n", "\n", - "assert sklearn.__version__ >= \"1.0.1\"" + "assert version.parse(sklearn.__version__) >= version.parse(\"1.0.1\")" ] }, { @@ -2058,7 +2059,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.10.6" }, "nav_menu": { "height": "252px", diff --git a/08_dimensionality_reduction.ipynb b/08_dimensionality_reduction.ipynb index e555b80..30500f5 100644 --- a/08_dimensionality_reduction.ipynb +++ b/08_dimensionality_reduction.ipynb @@ -68,9 +68,10 @@ "metadata": {}, "outputs": [], "source": [ + "from packaging import version\n", "import sklearn\n", "\n", - "assert sklearn.__version__ >= \"1.0.1\"" + "assert version.parse(sklearn.__version__) >= version.parse(\"1.0.1\")" ] }, { @@ -2565,7 +2566,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.12" + "version": "3.10.6" } }, "nbformat": 4, diff --git a/09_unsupervised_learning.ipynb b/09_unsupervised_learning.ipynb index cf2c755..fc1ea89 100644 --- a/09_unsupervised_learning.ipynb +++ b/09_unsupervised_learning.ipynb @@ -68,9 +68,10 @@ "metadata": {}, "outputs": [], "source": [ + "from packaging import version\n", "import sklearn\n", "\n", - "assert sklearn.__version__ >= \"1.0.1\"" + "assert version.parse(sklearn.__version__) >= version.parse(\"1.0.1\")" ] }, { @@ -6984,7 +6985,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.12" + "version": "3.10.6" } }, "nbformat": 4, diff --git a/10_neural_nets_with_keras.ipynb b/10_neural_nets_with_keras.ipynb index c383572..66c10df 100644 --- a/10_neural_nets_with_keras.ipynb +++ b/10_neural_nets_with_keras.ipynb @@ -68,9 +68,10 @@ "metadata": {}, "outputs": [], "source": [ + "from packaging import version\n", "import sklearn\n", "\n", - "assert sklearn.__version__ >= \"1.0.1\"" + "assert version.parse(sklearn.__version__) >= version.parse(\"1.0.1\")" ] }, { @@ -88,7 +89,7 @@ "source": [ "import tensorflow as tf\n", "\n", - "assert tf.__version__ >= \"2.8.0\"" + "assert version.parse(tf.__version__) >= version.parse(\"2.8.0\")" ] }, { @@ -3781,7 +3782,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.10.6" }, "nav_menu": { "height": "264px", diff --git a/11_training_deep_neural_networks.ipynb b/11_training_deep_neural_networks.ipynb index aa09c57..5237514 100644 --- a/11_training_deep_neural_networks.ipynb +++ b/11_training_deep_neural_networks.ipynb @@ -68,9 +68,10 @@ "metadata": {}, "outputs": [], "source": [ + "from packaging import version\n", "import tensorflow as tf\n", "\n", - "assert tf.__version__ >= \"2.8.0\"" + "assert version.parse(tf.__version__) >= version.parse(\"2.8.0\")" ] }, { @@ -4500,7 +4501,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.10.6" }, "nav_menu": { "height": "360px", diff --git a/12_custom_models_and_training_with_tensorflow.ipynb b/12_custom_models_and_training_with_tensorflow.ipynb index 5536a75..30a2bad 100644 --- a/12_custom_models_and_training_with_tensorflow.ipynb +++ b/12_custom_models_and_training_with_tensorflow.ipynb @@ -68,9 +68,10 @@ "metadata": {}, "outputs": [], "source": [ + "from packaging import version\n", "import tensorflow as tf\n", "\n", - "assert tf.__version__ >= \"2.8.0\"" + "assert version.parse(tf.__version__) >= version.parse(\"2.8.0\")" ] }, { @@ -6474,7 +6475,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.12" + "version": "3.10.6" } }, "nbformat": 4, diff --git a/13_loading_and_preprocessing_data.ipynb b/13_loading_and_preprocessing_data.ipynb index 7d26767..cff4789 100644 --- a/13_loading_and_preprocessing_data.ipynb +++ b/13_loading_and_preprocessing_data.ipynb @@ -68,9 +68,10 @@ "metadata": {}, "outputs": [], "source": [ + "from packaging import version\n", "import sklearn\n", "\n", - "assert sklearn.__version__ >= \"1.0.1\"" + "assert version.parse(sklearn.__version__) >= version.parse(\"1.0.1\")" ] }, { @@ -88,7 +89,7 @@ "source": [ "import tensorflow as tf\n", "\n", - "assert tf.__version__ >= \"2.8.0\"" + "assert version.parse(tf.__version__) >= version.parse(\"2.8.0\")" ] }, { @@ -4213,7 +4214,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.12" + "version": "3.10.6" }, "nav_menu": { "height": "264px", diff --git a/14_deep_computer_vision_with_cnns.ipynb b/14_deep_computer_vision_with_cnns.ipynb index c73f34d..074c451 100644 --- a/14_deep_computer_vision_with_cnns.ipynb +++ b/14_deep_computer_vision_with_cnns.ipynb @@ -83,9 +83,10 @@ }, "outputs": [], "source": [ + "from packaging import version\n", "import sklearn\n", "\n", - "assert sklearn.__version__ >= \"1.0.1\"" + "assert version.parse(sklearn.__version__) >= version.parse(\"1.0.1\")" ] }, { @@ -107,7 +108,7 @@ "source": [ "import tensorflow as tf\n", "\n", - "assert tf.__version__ >= \"2.8.0\"" + "assert version.parse(tf.__version__) >= version.parse(\"2.8.0\")" ] }, { @@ -2220,7 +2221,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.10.6" }, "nav_menu": {}, "toc": { diff --git a/15_processing_sequences_using_rnns_and_cnns.ipynb b/15_processing_sequences_using_rnns_and_cnns.ipynb index 0d1face..d836ab9 100644 --- a/15_processing_sequences_using_rnns_and_cnns.ipynb +++ b/15_processing_sequences_using_rnns_and_cnns.ipynb @@ -77,9 +77,10 @@ }, "outputs": [], "source": [ + "from packaging import version\n", "import tensorflow as tf\n", "\n", - "assert tf.__version__ >= \"2.8.0\"" + "assert version.parse(tf.__version__) >= version.parse(\"2.8.0\")" ] }, { @@ -4810,7 +4811,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.10.6" }, "nav_menu": {}, "toc": { diff --git a/16_nlp_with_rnns_and_attention.ipynb b/16_nlp_with_rnns_and_attention.ipynb index ab41b8b..c1a326a 100644 --- a/16_nlp_with_rnns_and_attention.ipynb +++ b/16_nlp_with_rnns_and_attention.ipynb @@ -77,9 +77,10 @@ }, "outputs": [], "source": [ + "from packaging import version\n", "import tensorflow as tf\n", "\n", - "assert tf.__version__ >= \"2.8.0\"" + "assert version.parse(tf.__version__) >= version.parse(\"2.8.0\")" ] }, { @@ -4297,7 +4298,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.10.6" }, "nav_menu": {}, "toc": { diff --git a/17_autoencoders_gans_and_diffusion_models.ipynb b/17_autoencoders_gans_and_diffusion_models.ipynb index 45af355..fa693a2 100644 --- a/17_autoencoders_gans_and_diffusion_models.ipynb +++ b/17_autoencoders_gans_and_diffusion_models.ipynb @@ -77,9 +77,10 @@ }, "outputs": [], "source": [ + "from packaging import version\n", "import sklearn\n", "\n", - "assert sklearn.__version__ >= \"1.0.1\"" + "assert version.parse(sklearn.__version__) >= version.parse(\"1.0.1\")" ] }, { @@ -101,7 +102,7 @@ "source": [ "import tensorflow as tf\n", "\n", - "assert tf.__version__ >= \"2.8.0\"" + "assert version.parse(tf.__version__) >= version.parse(\"2.8.0\")" ] }, { @@ -3280,7 +3281,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.10.6" }, "nav_menu": { "height": "381px", diff --git a/18_reinforcement_learning.ipynb b/18_reinforcement_learning.ipynb index 522014d..5633d2e 100644 --- a/18_reinforcement_learning.ipynb +++ b/18_reinforcement_learning.ipynb @@ -77,9 +77,10 @@ }, "outputs": [], "source": [ + "from packaging import version\n", "import tensorflow as tf\n", "\n", - "assert tf.__version__ >= \"2.8.0\"" + "assert version.parse(tf.__version__) >= version.parse(\"2.8.0\")" ] }, { @@ -2597,7 +2598,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.10.6" } }, "nbformat": 4, diff --git a/19_training_and_deploying_at_scale.ipynb b/19_training_and_deploying_at_scale.ipynb index 352b3db..0da6be3 100644 --- a/19_training_and_deploying_at_scale.ipynb +++ b/19_training_and_deploying_at_scale.ipynb @@ -77,9 +77,10 @@ }, "outputs": [], "source": [ + "from packaging import version\n", "import tensorflow as tf\n", "\n", - "assert tf.__version__ >= \"2.8.0\"" + "assert version.parse(tf.__version__) >= version.parse(\"2.8.0\")" ] }, { @@ -97,6 +98,7 @@ "metadata": {}, "outputs": [], "source": [ + "import sys\n", "if \"google.colab\" in sys.modules or \"kaggle_secrets\" in sys.modules:\n", " %pip install -q -U google-cloud-aiplatform" ] @@ -3162,7 +3164,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.10" + "version": "3.10.6" } }, "nbformat": 4, diff --git a/environment.yml b/environment.yml index 8243ded..ac6af78 100644 --- a/environment.yml +++ b/environment.yml @@ -3,44 +3,45 @@ channels: - conda-forge - defaults dependencies: - - box2d-py # used only in chapter 18, exercise 8 - - ftfy=5.5 # used only in chapter 16 by the transformers library + - box2d-py=2.3 # used only in chapter 18, exercise 8 + - ftfy=6.1 # used only in chapter 16 by the transformers library - graphviz # used only in chapter 6 for dot files - python-graphviz # used only in chapter 6 for dot files - - ipython=8.0 # a powerful Python shell - - ipywidgets=7.6 # optionally used only in chapter 11 for tqdm in Jupyter + - ipython=8.5 # a powerful Python shell + - ipywidgets=8.0 # optionally used only in chapter 11 for tqdm in Jupyter - joblib=1.1 # used only in chapter 2 to save/load Scikit-Learn models - - jupyterlab=3.2 # to edit and run Jupyter notebooks + - jupyterlab=3.4 # to edit and run Jupyter notebooks - matplotlib=3.5 # beautiful plots. See tutorial tools_matplotlib.ipynb - nbdime=3.1 # optional tool to diff Jupyter notebooks - nltk=3.6 # optionally used in chapter 3, exercise 4 - numexpr=2.8 # used only in the Pandas tutorial for numerical expressions - - numpy=1.22 # Powerful n-dimensional arrays and numerical computing tools + - numpy=1.23 # Powerful n-dimensional arrays and numerical computing tools - pandas=1.4 # data analysis and manipulation tool - - pillow=9.0 # image manipulation library, (used by matplotlib.image.imread) + - pillow=9.2 # image manipulation library, (used by matplotlib.image.imread) - pip # Python's package-management system - - py-xgboost=1.5 # used only in chapter 6 for optimized Gradient Boosting + - py-xgboost=1.6 # used only in chapter 6 for optimized Gradient Boosting + - pydot=1.4 # used only for in chapter 10 for tf.keras.utils.plot_model() - pyglet=1.5 # used only in chapter 18 to render environments - pyopengl=3.1 # used only in chapter 18 to render environments - - python=3.9 # Python! Not using latest version as some libs lack support - #- pyvirtualdisplay=2.2 # used only in chapter 18 if on headless server - - requests=2.27 # used only in chapter 19 for REST API queries - - scikit-learn=1.0 # machine learning library - - scipy=1.8 # scientific/technical computing library - - tqdm=4.62 # a progress bar library + - python=3.10 # your beloved programming language! :) + #- pyvirtualdisplay=3.0 # used only in chapter 18 if on headless server + - requests=2.28 # used only in chapter 19 for REST API queries + - scikit-learn=1.1 # machine learning library + - scipy=1.9 # scientific/technical computing library + - tqdm=4.64 # a progress bar library - wheel # built-package format for pip - - widgetsnbextension=3.5 # interactive HTML widgets for Jupyter notebooks + - widgetsnbextension=4.0 # interactive HTML widgets for Jupyter notebooks - pip: - - keras-tuner~=1.1.2 # used in chapters 10 and 19 for hyperparameter tuning - - tensorboard-plugin-profile~=2.5.0 # profiling plugin for TensorBoard - - tensorboard~=2.8.0 # TensorFlow's visualization toolkit - - tensorflow-addons~=0.16.1 # used in chapters 11 & 16 (for AdamW & seq2seq) - - tensorflow-datasets~=4.5.2 # datasets repository, ready to use + - keras-tuner~=1.1.3 # used in chapters 10 and 19 for hyperparameter tuning + - tensorboard-plugin-profile~=2.8.0 # profiling plugin for TensorBoard + - tensorboard~=2.10.0 # TensorFlow's visualization toolkit + - tensorflow-addons~=0.17.1 # used in chapters 11 & 16 (for AdamW & seq2seq) + - tensorflow-datasets~=4.6.0 # datasets repository, ready to use - tensorflow-hub~=0.12.0 # trained ML models repository, ready to use - - tensorflow-serving-api~=2.8.0 # or tensorflow-serving-api-gpu if gpu - - tensorflow~=2.8.0 # Deep Learning library - - transformers~=4.16.2 # Natural Language Processing lib for TF or PyTorch - - urlextract~=1.5.0 # optionally used in chapter 3, exercise 4 + - tensorflow-serving-api~=2.10.0 # or tensorflow-serving-api-gpu if gpu + - tensorflow~=2.10.0 # Deep Learning library + - transformers~=4.21.3 # Natural Language Processing lib for TF or PyTorch + - urlextract~=1.6.0 # optionally used in chapter 3, exercise 4 - gym[atari,accept-rom-license]~=0.21.0 # used only in chapter 18 - - google-cloud-aiplatform~=1.12.0 # used only in chapter 19 - - google-cloud-storage~=2.2.1 # used only in chapter 19 + - google-cloud-aiplatform~=1.17.0 # used only in chapter 19 + - google-cloud-storage~=2.5.0 # used only in chapter 19 diff --git a/requirements.txt b/requirements.txt index 8070f7a..ea33758 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,20 +4,20 @@ ##### Core scientific packages -jupyterlab~=3.2.0 -matplotlib~=3.5.0 -numpy~=1.22.0 -pandas~=1.4.0 -scipy~=1.8.0 +jupyterlab~=3.4.6 +matplotlib~=3.5.3 +numpy~=1.23.3 +pandas~=1.4.4 +scipy~=1.9.1 ##### Machine Learning packages -scikit-learn~=1.0.2 +scikit-learn~=1.1.2 # Optional: the XGBoost library is only used in chapter 7 -xgboost~=1.5.0 +xgboost~=1.6.2 # Optional: the transformers library is only used in chapter 16 -transformers~=4.16.2 +transformers~=4.21.3 ##### TensorFlow-related packages @@ -27,20 +27,20 @@ transformers~=4.16.2 # you must install CUDA, cuDNN and more: see tensorflow.org for the detailed # installation instructions. -tensorflow~=2.8.0 +tensorflow~=2.10.0 # Optional: the TF Serving API library is just needed for chapter 18. -tensorflow-serving-api~=2.8.0 # or tensorflow-serving-api-gpu if gpu +tensorflow-serving-api~=2.10.0 # or tensorflow-serving-api-gpu if gpu -tensorboard~=2.8.0 -tensorboard-plugin-profile~=2.5.0 -tensorflow-datasets~=4.5.2 +tensorboard~=2.10.0 +tensorboard-plugin-profile~=2.8.0 +tensorflow-datasets~=4.6.0 tensorflow-hub~=0.12.0 # Used in chapter 10 and 19 for hyperparameter tuning -keras-tuner~=1.1.2 +keras-tuner~=1.1.3 # Optional: used in chapters 11 & 16 (for AdamW & seq2seq) -tensorflow-addons~=0.16.1 +tensorflow-addons~=0.17.1 ##### Reinforcement Learning library (chapter 18) @@ -55,17 +55,17 @@ gym[Box2D,atari,accept-rom-license]~=0.21.0 # It's much easier to use Anaconda instead. ##### Image manipulation -Pillow~=9.0.0 -graphviz~=0.19.1 -pyglet~=1.5.21 +Pillow~=9.2.0 +graphviz~=0.20.1 +pyglet~=1.5.26 #pyvirtualdisplay # needed in chapter 18, if on a headless server # (i.e., without screen, e.g., Colab or VM) ##### Google Cloud Platform - used only in chapter 19 -google-cloud-aiplatform~=1.12.0 -google-cloud-storage~=2.2.1 +google-cloud-aiplatform~=1.17.0 +google-cloud-storage~=2.5.0 ##### Additional utilities @@ -73,23 +73,26 @@ google-cloud-storage~=2.2.1 joblib~=1.1.0 # Easy http requests -requests~=2.27.0 +requests~=2.28.1 # Nice utility to diff Jupyter Notebooks. -nbdime~=3.1.0 +nbdime~=3.1.1 # May be useful with Pandas for complex "where" clauses (e.g., Pandas # tutorial). -numexpr~=2.8.0 +numexpr~=2.8.3 # Optional: these libraries can be useful in chapter 3, exercise 4. -nltk~=3.6.5 -urlextract~=1.5.0 +nltk~=3.7 +urlextract~=1.6.0 # Optional: these libraries are only used in chapter 16 -ftfy~=5.5.0 +ftfy~=6.1.1 # Optional: tqdm displays nice progress bars, ipywidgets for tqdm's notebook # support -tqdm~=4.62.3 -ipywidgets~=7.6.5 +tqdm~=4.64.1 +ipywidgets~=8.0.2 + +# Optional: pydot is only used in chapter 10 for tf.keras.utils.plot_model() +pydot~=1.4.2