# TensorFlow is much easier to install using Anaconda, especially
# on Windows or when using a GPU. Please see the installation
# instructions in INSTALL.md


##### Core scientific packages
jupyterlab~=4.0.8
matplotlib~=3.8.1
numpy~=1.26.2
pandas~=2.1.3
scipy~=1.11.3

##### Machine Learning packages
scikit-learn~=1.3.2

# Optional: the XGBoost library is only used in chapter 7
xgboost~=2.0.2

# Optional: the transformers library is only used in chapter 16
transformers~=4.35.0

##### TensorFlow-related packages

# If you have a TF-compatible GPU and you want to enable GPU support, then
# replace tensorflow-serving-api with tensorflow-serving-api-gpu.
# Your GPU must have CUDA Compute Capability 3.5 or higher support, and
# you must install CUDA, cuDNN and more: see tensorflow.org for the detailed
# installation instructions.

tensorflow~=2.14.0

# Optional: the TF Serving API library is just needed for chapter 18.
tensorflow-serving-api~=2.14.0  # or tensorflow-serving-api-gpu if gpu

tensorboard~=2.14.1
tensorboard-plugin-profile~=2.14.0
tensorflow-datasets~=4.9.3
tensorflow-hub~=0.15.0

# Used in chapter 10 and 19 for hyperparameter tuning
keras-tuner~=1.4.6

##### Reinforcement Learning library (chapter 18)

# There are a few dependencies you need to install first, check out:
# https://github.com/Farama-Foundation/Gymnasium
swig~=4.1.1
gymnasium[Box2D,atari,accept-rom-license]~=0.29.1
# WARNING: on Windows, installing Box2D this way requires:
# * Swig: http://www.swig.org/download.html
# * Microsoft C++ Build Tools:
#   https://visualstudio.microsoft.com/visual-cpp-build-tools/
# It's much easier to use Anaconda instead.

##### Image manipulation
Pillow~=10.1.0
graphviz~=0.20.1

##### Google Cloud Platform - used only in chapter 19
google-cloud-aiplatform~=1.36.2
google-cloud-storage~=2.13.0

##### Additional utilities

# Efficient jobs (caching, parallelism, persistence)
joblib~=1.3.2

# Easy http requests
requests~=2.31.0

# Nice utility to diff Jupyter Notebooks.
nbdime~=3.2.1

# May be useful with Pandas for complex "where" clauses (e.g., Pandas
# tutorial).
numexpr~=2.8.7

# Optional: these libraries can be useful in chapter 3, exercise 4.
nltk~=3.8.1
urlextract~=1.8.0

# Optional: tqdm displays nice progress bars, ipywidgets for tqdm's notebook
#           support
tqdm~=4.66.1
ipywidgets~=8.1.1

# Optional: pydot is only used in chapter 10 for tf.keras.utils.plot_model()
pydot~=1.4.2

# Optional: statsmodels is only used in chapter 15 for time series analysis
statsmodels~=0.14.0

