# 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
jupyter==1.0.0
matplotlib==3.3.4
numpy==1.19.5
pandas==1.2.2
scipy==1.6.0

##### Machine Learning packages
scikit-learn==0.24.1

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

# Optional: the transformers library is only using in chapter 16
transformers==4.3.2

##### 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.4.1
# Optional: the TF Serving API library is just needed for chapter 19.
tensorflow-serving-api==2.4.1 # or tensorflow-serving-api-gpu if gpu

tensorboard==2.4.1
tensorboard-plugin-profile==2.4.0
tensorflow-datasets==3.0.0
tensorflow-hub==0.9.0
tensorflow-probability==0.12.1

# Optional: only used in chapter 13.
# NOT AVAILABLE ON WINDOWS
tfx==0.27.0

# Optional: only used in chapter 16.
# NOT AVAILABLE ON WINDOWS
tensorflow-addons==0.12.1

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

# There are a few dependencies you need to install first, check out:
# https://github.com/openai/gym#installing-everything
gym[atari,Box2D]==0.18.0
# On Windows, install atari_py using:
# pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py

tf-agents==0.7.1

##### Image manipulation
Pillow==8.2.0
graphviz==0.16
opencv-python==4.5.1.48
pyglet==1.5.0

#pyvirtualdisplay # needed in chapter 16, if on a headless server
                  # (i.e., without screen, e.g., Colab or VM)


##### Additional utilities

# Efficient jobs (caching, parallelism, persistence)
joblib==0.14.1

# Easy http requests
requests==2.25.1

# Nice utility to diff Jupyter Notebooks.
nbdime==2.1.0

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

# Optional: these libraries can be useful in the classification chapter,
# exercise 4.
nltk==3.5
urlextract==1.2.0

# Optional: these libraries are only used in chapter 16
ftfy==5.8

# Optional: tqdm displays nice progress bars, ipywidgets for tqdm's notebook support
tqdm==4.56.1
ipywidgets==7.6.3
