Python ML модель дает неправильный вывод в docker - PullRequest
1 голос
/ 27 апреля 2020

Мы обучали модель в 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

...