Мы обучали модель в python и стали свидетелями очень странного поведения при использовании Docker. При работе в локальной системе (Ma c Machine) модель дает правильный прогноз, однако, когда мы используем docker, она дает прогноз, который далек от фактического. Вот как выглядит Dockerfile
-
FROM ubuntu:18.04
RUN apt -y update &&\
apt -y install python3 python3-pip
RUN python3 -m pip install --upgrade pip &&\
pip3 install -U scikit-learn
ADD ./python_requirements.txt /
RUN python3 -m pip3 install -r python_requirements.txt
ENTRYPOINT ["bash","/scripts/start_flask.sh"]
А вот docker-compose.yml
version: "2"
services:
flask:
build : .
volumes :
- ../scripts:/scripts
- ../data:/data
ports:
- 3000:3000
В docker нет ошибок, кроме некоторых предупреждений, которые Я узнал, что можно игнорировать -
| /usr/lib/python3.5/importlib/_bootstrap.py:222: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
flask_1 | return f(*args, **kwds)
flask_1 | /usr/lib/python3.5/importlib/_bootstrap.py:222: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
flask_1 | return f(*args, **kwds)
flask_1 | /usr/lib/python3.5/importlib/_bootstrap.py:222: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
flask_1 | return f(*args, **kwds)
flask_1 | /usr/lib/python3.5/importlib/_bootstrap.py:222: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
flask_1 | return f(*args, **kwds)
flask_1 | /usr/lib/python3.5/importlib/_bootstrap.py:222: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
flask_1 | return f(*args, **kwds)
flask_1 | * Running on http://0.0.0.0:3000/ (Press CTRL+C to quit)
И, наконец, это сценарий, который мы используем для запуска файла кода python
#! /bin/bash
cd /scripts
python3 server.py
На основе приведенных ниже комментариев я проверил версия модулей в docker и модулей в локальной системе и приведение в синхронизацию c теперь и версия модулей внутри контейнера, и в моей локальной системе такая же, как показано ниже -
scikit-learn==0.22.1
pandas==1.0.1
numpy==1.18.1
Flask==1.1.1
scipy==1.4.1
Однако проблема остается таким же. Пытаюсь пару дней выяснить, что здесь не так. Будем благодарны за любую помощь и указатель.
BR