OSError:SavedModel文件在我尝试在Heroku上部署Flask应用程序时不存在

2024-06-02 09:14:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我的flask应用程序在本地服务器上运行良好。当我尝试在heroku上部署它时,会出现以下错误:

2020-11-12T13:22:11.503563+00:00 app[web.1]: OSError: SavedModel file does not exist at: /Users/leylamemiguven/Desktop/sentiment/twitter_sentiment_analysis.h5/{saved_model.pbtxt|saved_model.pb}

我的keras模型保存为项目根目录中的.h5文件。路径是正确的,因为我直接从vs代码复制了路径。我似乎无法解决这个问题,因为当我使用 $ flask run运行它时,它工作得很好 这是模型。py文件


from tensorflow import keras
from keras.models import load_model
from keras.preprocessing.text import Tokenizer
from keras.preprocessing.sequence import pad_sequences

def predict(user_input_tweet):
    #load the models
    model = load_model('/Users/leylamemiguven/Desktop/sentiment/twitter_sentiment_analysis.h5')

    # load tokenizer for prediction
    tk = Tokenizer(num_words=1000, filters='!"#$%&()*+,./:;<=>?@[]^_`{|}~')

    tk.fit_on_texts(user_input_tweet)
    X = tk.texts_to_sequences(user_input_tweet)
    X = pad_sequences(X, maxlen=30)
    predicted_result = model.predict(X, batch_size=1)
    # print(predicted_result)

    #get predicted result
    # predicted_probability = 0
    status = ['positive','negative']
    if predicted_result.item(0)> predicted_result.item(1):
        status = status[1]
        predicted_probability = predicted_result.item(0)
    else:
        status = status[0]
        predicted_probability = predicted_result.item(1)

    return(status, predicted_probability)

这是我的requirements.txt文件

click==7.1.2
Flask==1.1.2
gunicorn==20.0.4
h5py==2.10.0
isort==5.6.4
itsdangerous==1.1.0
Jinja2==2.11.2
Keras==2.4.3
Keras-Applications==1.0.2
Keras-Preprocessing==1.1.2
lazy-object-proxy==1.4.3
MarkupSafe==1.1.1
mccabe==0.6.1
numpy==1.18.5
pylint==2.6.0
six==1.15.0
tensorflow==2.3.1
tensorflow-estimator==2.3.0
toml==0.10.2
Werkzeug==1.0.1
wrapt==1.12.1

这是错误的完整日志

2020-11-12T13:06:22.544232+00:00 heroku[router]: at=info method=GET path="/" host=digiturk-sentiment-analysis.herokuapp.com request_id=2a99ab2b-78ea-4480-bc45-faa874eb44eb fwd="31.155.246.3" dyno=web.1 connect=2ms service=15ms status=200 bytes=1895 protocol=https
2020-11-12T13:06:25.315597+00:00 app[web.1]: [2020-11-12 13:06:25,313] ERROR in app: Exception on / [POST]
2020-11-12T13:06:25.315643+00:00 app[web.1]: Traceback (most recent call last):
2020-11-12T13:06:25.315644+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 2447, in wsgi_app
2020-11-12T13:06:25.315645+00:00 app[web.1]: response = self.full_dispatch_request()
2020-11-12T13:06:25.315645+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1952, in full_dispatch_request
2020-11-12T13:06:25.315645+00:00 app[web.1]: rv = self.handle_user_exception(e)
2020-11-12T13:06:25.315646+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1821, in handle_user_exception
2020-11-12T13:06:25.315646+00:00 app[web.1]: reraise(exc_type, exc_value, tb)
2020-11-12T13:06:25.315646+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/_compat.py", line 39, in reraise
2020-11-12T13:06:25.315647+00:00 app[web.1]: raise value
2020-11-12T13:06:25.315647+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1950, in full_dispatch_request
2020-11-12T13:06:25.315648+00:00 app[web.1]: rv = self.dispatch_request()
2020-11-12T13:06:25.315648+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1936, in dispatch_request
2020-11-12T13:06:25.315648+00:00 app[web.1]: return self.view_functions[rule.endpoint](**req.view_args)
2020-11-12T13:06:25.315649+00:00 app[web.1]: File "/app/app.py", line 13, in home
2020-11-12T13:06:25.315649+00:00 app[web.1]: status, predicted_probability = predict(user_input)
2020-11-12T13:06:25.315649+00:00 app[web.1]: File "/app/model.py", line 9, in predict
2020-11-12T13:06:25.315649+00:00 app[web.1]: model = load_model('/Users/leylamemiguven/Desktop/sentiment/twitter_sentiment_analysis.h5')
2020-11-12T13:06:25.315652+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/tensorflow/python/keras/saving/save.py", line 186, in load_model
2020-11-12T13:06:25.315652+00:00 app[web.1]: loader_impl.parse_saved_model(filepath)
2020-11-12T13:06:25.315653+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/tensorflow/python/saved_model/loader_impl.py", line 113, in parse_saved_model
2020-11-12T13:06:25.315654+00:00 app[web.1]: constants.SAVED_MODEL_FILENAME_PB))
2020-11-12T13:06:25.315661+00:00 app[web.1]: OSError: SavedModel file does not exist at: /Users/leylamemiguven/Desktop/sentiment/twitter_sentiment_analysis.h5/{saved_model.pbtxt|saved_model.pb}
2020-11-12T13:06:25.316852+00:00 app[web.1]: 10.69.31.173 - - [12/Nov/2020:13:06:25 +0000] "POST / HTTP/1.1" 500 290 "https://digiturk-sentiment-analysis.herokuapp.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36"
2020-11-12T13:06:25.319293+00:00 heroku[router]: at=info method=POST path="/" host=digiturk-sentiment-analysis.herokuapp.com request_id=453321cc-a7a8-4d90-8a90-bb9b24cb04ac fwd="31.155.246.3" dyno=web.1 connect=1ms service=6ms status=500 bytes=470 protocol=https
2020-11-12T13:07:58.000000+00:00 app[api]: Build started by user leylamemiguven@gmail.com
2020-11-12T13:11:41.521626+00:00 app[api]: Deploy 01ddc93a by user leylamemiguven@gmail.com
2020-11-12T13:11:41.521626+00:00 app[api]: Release v15 created by user leylamemiguven@gmail.com
2020-11-12T13:11:41.875409+00:00 heroku[web.1]: Restarting
2020-11-12T13:11:41.878299+00:00 heroku[web.1]: State changed from up to starting
2020-11-12T13:11:42.958320+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2020-11-12T13:11:42.987889+00:00 app[web.1]: [2020-11-12 13:11:42 +0000] [4] [INFO] Handling signal: term
2020-11-12T13:11:42.990137+00:00 app[web.1]: [2020-11-12 13:11:42 +0000] [10] [INFO] Worker exiting (pid: 10)
2020-11-12T13:11:42.990139+00:00 app[web.1]: [2020-11-12 13:11:42 +0000] [11] [INFO] Worker exiting (pid: 11)
2020-11-12T13:11:43.389197+00:00 app[web.1]: [2020-11-12 13:11:43 +0000] [4] [INFO] Shutting down: Master
2020-11-12T13:11:43.455669+00:00 heroku[web.1]: Process exited with status 0
2020-11-12T13:12:07.210380+00:00 heroku[web.1]: Starting process with command `gunicorn app:app`
2020-11-12T13:12:09.485574+00:00 app[web.1]: [2020-11-12 13:12:09 +0000] [4] [INFO] Starting gunicorn 20.0.4
2020-11-12T13:12:09.486186+00:00 app[web.1]: [2020-11-12 13:12:09 +0000] [4] [INFO] Listening at: http://0.0.0.0:10701 (4)
2020-11-12T13:12:09.486293+00:00 app[web.1]: [2020-11-12 13:12:09 +0000] [4] [INFO] Using worker: sync
2020-11-12T13:12:09.490739+00:00 app[web.1]: [2020-11-12 13:12:09 +0000] [10] [INFO] Booting worker with pid: 10
2020-11-12T13:12:09.529926+00:00 app[web.1]: [2020-11-12 13:12:09 +0000] [11] [INFO] Booting worker with pid: 11
2020-11-12T13:12:10.061045+00:00 heroku[web.1]: State changed from starting to up
2020-11-12T13:12:10.290242+00:00 app[web.1]: 2020-11-12 13:12:10.290147: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart.so.10.1: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /app/.heroku/vendor/lib:/app/.heroku/python/lib:
2020-11-12T13:12:10.290292+00:00 app[web.1]: 2020-11-12 13:12:10.290214: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
2020-11-12T13:12:10.344063+00:00 app[web.1]: 2020-11-12 13:12:10.343957: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart.so.10.1: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /app/.heroku/vendor/lib:/app/.heroku/python/lib:
2020-11-12T13:12:10.344534+00:00 app[web.1]: 2020-11-12 13:12:10.344479: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
2020-11-12T13:12:53.000000+00:00 app[api]: Build succeeded
2020-11-12T13:17:17.000000+00:00 app[api]: Build started by user leylamemiguven@gmail.com
2020-11-12T13:20:30.117135+00:00 app[api]: Release v16 created by user leylamemiguven@gmail.com
2020-11-12T13:20:30.117135+00:00 app[api]: Deploy 9233e4a0 by user leylamemiguven@gmail.com
2020-11-12T13:20:30.367056+00:00 heroku[web.1]: Restarting
2020-11-12T13:20:30.398749+00:00 heroku[web.1]: State changed from up to starting
2020-11-12T13:20:31.341369+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2020-11-12T13:20:31.373238+00:00 app[web.1]: [2020-11-12 13:20:31 +0000] [4] [INFO] Handling signal: term
2020-11-12T13:20:31.376056+00:00 app[web.1]: [2020-11-12 13:20:31 +0000] [10] [INFO] Worker exiting (pid: 10)
2020-11-12T13:20:31.376134+00:00 app[web.1]: [2020-11-12 13:20:31 +0000] [11] [INFO] Worker exiting (pid: 11)
2020-11-12T13:20:31.879066+00:00 app[web.1]: [2020-11-12 13:20:31 +0000] [4] [INFO] Shutting down: Master
2020-11-12T13:20:31.970414+00:00 heroku[web.1]: Process exited with status 0
2020-11-12T13:20:59.667385+00:00 heroku[web.1]: Starting process with command `gunicorn app:app`
2020-11-12T13:21:02.075767+00:00 app[web.1]: [2020-11-12 13:21:02 +0000] [4] [INFO] Starting gunicorn 20.0.4
2020-11-12T13:21:02.076613+00:00 app[web.1]: [2020-11-12 13:21:02 +0000] [4] [INFO] Listening at: http://0.0.0.0:14183 (4)
2020-11-12T13:21:02.076803+00:00 app[web.1]: [2020-11-12 13:21:02 +0000] [4] [INFO] Using worker: sync
2020-11-12T13:21:02.081890+00:00 app[web.1]: [2020-11-12 13:21:02 +0000] [10] [INFO] Booting worker with pid: 10
2020-11-12T13:21:02.142259+00:00 app[web.1]: [2020-11-12 13:21:02 +0000] [11] [INFO] Booting worker with pid: 11
2020-11-12T13:21:02.668137+00:00 app[web.1]: 2020-11-12 13:21:02.668047: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart.so.10.1: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /app/.heroku/vendor/lib:/app/.heroku/python/lib:
2020-11-12T13:21:02.668202+00:00 app[web.1]: 2020-11-12 13:21:02.668118: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
2020-11-12T13:21:02.741217+00:00 heroku[web.1]: State changed from starting to up
2020-11-12T13:21:02.743930+00:00 app[web.1]: 2020-11-12 13:21:02.743817: W tensorflow/stream_executor/platform/default/dso_loader.cc:59] Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart.so.10.1: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /app/.heroku/vendor/lib:/app/.heroku/python/lib:
2020-11-12T13:21:02.743940+00:00 app[web.1]: 2020-11-12 13:21:02.743880: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
2020-11-12T13:21:36.000000+00:00 app[api]: Build succeeded
2020-11-12T13:22:05.828834+00:00 app[web.1]: 10.102.191.252 - - [12/Nov/2020:13:22:05 +0000] "GET / HTTP/1.1" 200 1733 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36"
2020-11-12T13:22:05.829506+00:00 heroku[router]: at=info method=GET path="/" host=digiturk-sentiment-analysis.herokuapp.com request_id=cef7cdd9-4b34-4eb6-803e-c8480f79f7f3 fwd="31.155.246.3" dyno=web.1 connect=0ms service=24ms status=200 bytes=1895 protocol=https
2020-11-12T13:22:11.503537+00:00 app[web.1]: [2020-11-12 13:22:11,501] ERROR in app: Exception on / [POST]
2020-11-12T13:22:11.503550+00:00 app[web.1]: Traceback (most recent call last):
2020-11-12T13:22:11.503551+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 2447, in wsgi_app
2020-11-12T13:22:11.503552+00:00 app[web.1]: response = self.full_dispatch_request()
2020-11-12T13:22:11.503553+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1952, in full_dispatch_request
2020-11-12T13:22:11.503554+00:00 app[web.1]: rv = self.handle_user_exception(e)
2020-11-12T13:22:11.503554+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1821, in handle_user_exception
2020-11-12T13:22:11.503554+00:00 app[web.1]: reraise(exc_type, exc_value, tb)
2020-11-12T13:22:11.503555+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/_compat.py", line 39, in reraise
2020-11-12T13:22:11.503556+00:00 app[web.1]: raise value
2020-11-12T13:22:11.503557+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1950, in full_dispatch_request
2020-11-12T13:22:11.503557+00:00 app[web.1]: rv = self.dispatch_request()
2020-11-12T13:22:11.503557+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/app.py", line 1936, in dispatch_request
2020-11-12T13:22:11.503558+00:00 app[web.1]: return self.view_functions[rule.endpoint](**req.view_args)
2020-11-12T13:22:11.503558+00:00 app[web.1]: File "/app/app.py", line 13, in home
2020-11-12T13:22:11.503559+00:00 app[web.1]: status, predicted_probability = predict(user_input)
2020-11-12T13:22:11.503559+00:00 app[web.1]: File "/app/model.py", line 9, in predict
2020-11-12T13:22:11.503559+00:00 app[web.1]: model = load_model('/Users/leylamemiguven/Desktop/sentiment/twitter_sentiment_analysis.h5')
2020-11-12T13:22:11.503560+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/tensorflow/python/keras/saving/save.py", line 186, in load_model
2020-11-12T13:22:11.503561+00:00 app[web.1]: loader_impl.parse_saved_model(filepath)
2020-11-12T13:22:11.503562+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/tensorflow/python/saved_model/loader_impl.py", line 113, in parse_saved_model
2020-11-12T13:22:11.503562+00:00 app[web.1]: constants.SAVED_MODEL_FILENAME_PB))
2020-11-12T13:22:11.503563+00:00 app[web.1]: OSError: SavedModel file does not exist at: /Users/leylamemiguven/Desktop/sentiment/twitter_sentiment_analysis.h5/{saved_model.pbtxt|saved_model.pb}
2020-11-12T13:22:11.504510+00:00 app[web.1]: 10.102.191.252 - - [12/Nov/2020:13:22:11 +0000] "POST / HTTP/1.1" 500 290 "https://digiturk-sentiment-analysis.herokuapp.com/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36"
2020-11-12T13:22:11.507692+00:00 heroku[router]: at=info method=POST path="/" host=digiturk-sentiment-analysis.herokuapp.com request_id=4684d791-7fcd-4b72-9a7b-a24cbfef5846 fwd="31.155.246.3" dyno=web.1 connect=0ms service=6ms status=500 bytes=470 protocol=https ```

Tags: inpyinfoappflaskherokumodellib
1条回答
网友
1楼 · 发布于 2024-06-02 09:14:53

您的文件路径看起来像是相对于本地PC的

/Users/leylamemiguven/Desktop/sentiment/twitter_sentiment_analysis.h5

看起来Heroku将您的应用程序放在应用程序目录中,因此您可能必须使用

/app/twitter_sentiment_analysis.h5

相关问题 更多 >