Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ML模型在docker中给出了错误的输出_Python_Pandas_Docker_Machine Learning_Scikit Learn - Fatal编程技术网

Python ML模型在docker中给出了错误的输出

Python ML模型在docker中给出了错误的输出,python,pandas,docker,machine-learning,scikit-learn,Python,Pandas,Docker,Machine Learning,Scikit Learn,我们一直在用python训练一个模型,在使用Docker时看到了一个非常奇怪的行为。当在本地系统(Mac机器)中运行时,模型给出了正确的预测,但是当我们使用docker时,它给出的预测与实际情况相差甚远。下面是我们的Dockerfile的样子- FROM ubuntu:18.04 RUN apt -y update &&\ apt -y install python3 python3-pip RUN python3 -m pip install --upgrade p

我们一直在用python训练一个模型,在使用Docker时看到了一个非常奇怪的行为。当在本地系统(Mac机器)中运行时,模型给出了正确的预测,但是当我们使用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中的模块版本和本地系统中的模块版本,并将其同步。现在,容器内和本地系统中的模块版本与下面相同-

scikit-learn==0.22.1
pandas==1.0.1
numpy==1.18.1
Flask==1.1.1
scipy==1.4.1
然而,问题依然存在。几天以来一直在努力找出这里出了什么问题。任何帮助和指示都将不胜感激


BR

Docker容器的日志中是否有错误?可能是应用程序在运行时在容器内运行时产生了一些错误。@vkozyrev我已经用收到的警告更新了问题。没有错误,例如当您在Docker容器外运行应用程序时,您是否收到这些警告?在您的本地和Docker环境中,项目中使用的模块版本是否相同?我看到您在dockerfile中安装了这些模块,但是如果您在行为上遇到差异,可能值得检查一下。您能确保模块版本相同吗?如果是,您是否可以尝试不装载卷,例如在docker中复制所需的文件?我曾经在docker上遇到共享卷问题,一些文件未被检测到/忽略。docker容器的日志中是否存在一些错误?可能是应用程序在运行时在容器内运行时产生了一些错误。@vkozyrev我已经用收到的警告更新了问题。没有错误,例如当您在Docker容器外运行应用程序时,您是否收到这些警告?在您的本地和Docker环境中,项目中使用的模块版本是否相同?我看到您在dockerfile中安装了这些模块,但是如果您在行为上遇到差异,可能值得检查一下。您能确保模块版本相同吗?如果是,您是否可以尝试不装载卷,例如在docker中复制所需的文件?我曾经在docker上遇到共享卷问题,一些文件未被检测到/忽略。