Requirements error on certain pip dependencies

when i add the following pip dependencies to my environment.yml file i get an error installing them on streamlit app

    - face-recognition
    - imageio-ffmpeg
    - imageio
    - ffmpeg-python
    - pytube

if i remove these my app deploys

my environment.yml is following:

channels:
  - anaconda 
  - conda-forge
  - defaults
dependencies:
    - dlib
    - numpy
    - scipy
    - pip
    - cmake
    - pip:
        - tensorflow==2.4.0
        - streamlit
        - matplotlib
        - opencv-python-headless
        - pillow
        - cuda-python
        - cudnn-python-wrappers
        - face-recognition
        - imageio-ffmpeg
        - imageio
        - ffmpeg-python
        - pytube

Hey @filxy

I believe the reason for this behavior is the huge size of the Tensorflow library. When installed through pip, it takes around 400 MB to download and additional space after installation. In the free tier, only 1 GB space is available so when combined with other libraries, it is very common for the app to run out of memory, and hence this behavior.

To fix it, you need to replace tensorflow with tensorflow-cpu. Also, installing cuda-python and cudnn-python-wrappers won’t help either since GPU is not available on the Cloud (at least on the free tier).

After removing cuda-python and cudnn-python-wrappers libraries, you also need to make changes to your code wherever you were using them.

Best,
Kanak

Hey @Kanak
The model I am deploying requires GPU and the reason i have cudnn-python-wrappers and cuda-python because it won’t deploy without it.

Streamlit Cloud doesn’t support GPU for now so for using GPU, you will need to deploy your app on Azure/AWS/GCP using their GPU enabled VMs which are really costly.

I also found this discussion (What's your preferred deployment platform for GPU-enabled applications?) that talk about some other platforms to do so incurring less cost.

Best,
Kanak

1 Like