# 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.1.3
numpy==1.18.1
pandas==1.0.3
scipy==1.4.1


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

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

##### TensorFlow-related packages

# If you have a TF-compatible GPU and you want to enable GPU support, then
# replace tensorflow with tensorflow-gpu, and 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.1.0

# Optional: the TF Serving API library is just needed for chapter 19.
tensorflow-serving-api==2.1.0
#tensorflow-serving-api-gpu==2.1.0

tensorboard==2.1.1
tensorboard-plugin-profile==2.2.0
tensorflow-datasets==2.1.0
tensorflow-hub==0.7.0
tensorflow-probability==0.9.0

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

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

##### 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]==0.17.1
# On Windows, install atari_py using:
# pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py

tf-agents==0.3.0


##### Image manipulation
imageio==2.6.1
Pillow==7.0.0
scikit-image==0.16.2
graphviz==0.13.2
pydot==1.4.1
opencv-python==4.2.0.32
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.23.0

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

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

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

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