Deployment Platform: Render ✅

I’ve just been struggling with this exact same problem as you two for the entire day (@LessW2020) : _pickle.UnpicklingError: invalid load key, ‘<’.

I was using Google Colab to train the model and strangely I think it was that I right-click downloaded the exported .pkl file from Colab and then re-uploaded again to Google Drive from my desktop. When I drag and dropped the file directly into the mounted Google Drive folder using the Colab interface and shared that file afterwards, the render build worked.

Perhaps the downloading/uploading to Google Drive in that way corrupted the pickle file which gave this error.

1 Like

Thanks Mike! Do you mind sharing your python file code? I tried Colab but I couldn’t figure out the proper filepaths. (And I assume you put your .pkl file in the Colab “sample_data” folder?)

Which python code do you need? From Colab or the render deployment? In Colab I just exported the learner without giving it a specific name using learn.export() which places the “export.pkl” file in the working directory (this was the default /content folder). Then I just drag n dropped the “export.pkl” file from there to the folder I wanted it to be in in my Google Drive that I had already mounted in the normal way as below (i.e. to the project folder I had already created in Google Drive):

from google.colab import drive
drive.mount('/content/drive')
1 Like

Thanks! Did you make any changes to the server.py file in the app folder?

In this case yes, as I’m using fastai-v2. So to get the render deployment working (in addition to the method mentioned above re drag n drop of export.pkl->Google Drive within Colab rather than download), I updated the files as follows.

requirements.txt - dependencies must match those in the Colab environment you trained the model in, as stated earlier in the thread by others. In my case:

aiofiles==0.4.0
aiohttp==3.5.4
asyncio==3.4.3
fastai==1.0.61
fastai2==0.0.17
fastcore==0.1.18
https://download.pytorch.org/whl/cu101/torch-1.5.1%2Bcu101-cp37-cp37m-linux_x86_64.whl
https://download.pytorch.org/whl/cu101/torchvision-0.6.1%2Bcu101-cp37-cp37m-linux_x86_64.whl
ipykernel==4.10.1
numpy==1.18.5
starlette==0.12.0
uvicorn==0.7.1
Pillow==7.0.0 
python-multipart==0.0.5

server.py - a few small changes to imported libraries and prediction function (in addition to the Gdrive direct download URL, labels, “export.pkl” filename as necessary):

import aiohttp
import asyncio
import uvicorn
from fastai2 import *
from fastai2.vision.all import *
from io import BytesIO
from starlette.applications import Starlette
from starlette.middleware.cors import CORSMiddleware
from starlette.responses import HTMLResponse, JSONResponse
from starlette.staticfiles import StaticFiles

export_file_url = 'GOOGLE DRIVE URL'
export_file_name = 'export.pkl'

classes = ['YOURLABEL1', 'YOURLABEL2', 'ETC.']
path = Path(__file__).parent

app = Starlette()
app.add_middleware(CORSMiddleware, allow_origins=['*'], allow_headers=['X-Requested-With', 'Content-Type'])
app.mount('/static', StaticFiles(directory='app/static'))


async def download_file(url, dest):
    if dest.exists(): return
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            data = await response.read()
            with open(dest, 'wb') as f:
                f.write(data)


async def setup_learner():
    await download_file(export_file_url, path / export_file_name)
    try:
        print("File exists?:",os.path.exists(path/export_file_name))
        learn = load_learner(path/export_file_name)
        return learn
    except RuntimeError as e:
        if len(e.args) > 0 and 'CPU-only machine' in e.args[0]:
            print(e)
            message = "\n\nThis model was trained with an old version of fastai and will not work in a CPU environment.\n\nPlease update the fastai library in your training environment and export your model again.\n\nSee instructions for 'Returning to work' at https://course.fast.ai."
            raise RuntimeError(message)
        else:
            raise


loop = asyncio.get_event_loop()
tasks = [asyncio.ensure_future(setup_learner())]
learn = loop.run_until_complete(asyncio.gather(*tasks))[0]
loop.close()


@app.route('/')
async def homepage(request):
    html_file = path / 'view' / 'index.html'
    return HTMLResponse(html_file.open().read())


@app.route('/analyze', methods=['POST'])
async def analyze(request):
    img_data = await request.form()
    img_bytes = await (img_data['file'].read())
    pred = learn.predict(img_bytes)
    return JSONResponse({'result': str(pred[0])})


if __name__ == '__main__':
    if 'serve' in sys.argv:
        uvicorn.run(app=app, host='0.0.0.0', port=5000, log_level="info")

Hope this helps.

2 Likes

Hi Adam_mehdi hope your well!

Basically you create a viritual environment on pc or mac
Copy the repository to that directory
Run pip install -r requirements.txt
See posts on this thread relating to ‘pip list’ and ediiting server.py
Once you resolve any library issues run
python app/server.py serve
This will return an webserver address that you enter in the browser.
You can then test your model in the browser.
Once you know it’s working deploying on render.com will be much easier.

Cheers mrfabulous1 :smiley: :smiley:

1 Like

Hi, so I’m trying to use the Render app, but I’ve been getting this error:

#10 [6/6] RUN python app/server.py
Jul 2 08:14:29 PM  #10 1.804 Traceback (most recent call last):
Jul 2 08:14:29 PM  #10 1.804   File "app/server.py", line 48, in <module>
Jul 2 08:14:29 PM  #10 1.804     learn = loop.run_until_complete(asyncio.gather(*tasks))[0]
Jul 2 08:14:29 PM  #10 1.804   File "/usr/local/lib/python3.7/asyncio/base_events.py", line 587, in     run_until_complete
Jul 2 08:14:29 PM  #10 1.804     return future.result()
Jul 2 08:14:29 PM  #10 1.804   File "app/server.py", line 33, in setup_learner
Jul 2 08:14:29 PM  #10 1.804     await download_file(export_file_url, path / export_file_name)
Jul 2 08:14:29 PM  #10 1.804   File "app/server.py", line 26, in download_file
Jul 2 08:14:29 PM  #10 1.804     async with session.get(url) as response:
Jul 2 08:14:29 PM  #10 1.804   File "/usr/local/lib/python3.7/site-packages/aiohttp/client.py", line 1005, in __aenter__
Jul 2 08:14:29 PM  #10 1.804     self._resp = await self._coro
Jul 2 08:14:29 PM  #10 1.804   File "/usr/local/lib/python3.7/site-packages/aiohttp/client.py", line 466, in _request
Jul 2 08:14:29 PM  #10 1.804     ssl=ssl, proxy_headers=proxy_headers, traces=traces)
Jul 2 08:14:29 PM  #10 1.804   File "/usr/local/lib/python3.7/site-packages/aiohttp/client_reqrep.py", line 286, in __init__
Jul 2 08:14:29 PM  #10 1.804     self.update_host(url)
Jul 2 08:14:29 PM  #10 1.804   File "/usr/local/lib/python3.7/site-packages/aiohttp/client_reqrep.py", line 340, in update_host
Jul 2 08:14:29 PM  #10 1.804     raise InvalidURL(url)
Jul 2 08:14:29 PM  #10 1.804 aiohttp.client_exceptions.InvalidURL
Jul 2 08:14:29 PM  #10 ERROR: executor failed running [/bin/sh -c python app/server.py]: buildkit-runc did not terminate successfully
Jul 2 08:14:29 PM  ------
Jul 2 08:14:29 PM   > [6/6] RUN python app/server.py:
Jul 2 08:14:29 PM  ------
Jul 2 08:14:29 PM  error: failed to solve: rpc error: code = Unknown desc = executor failed running [/bin/sh -c python app/server.py]: buildkit-runc did not terminate successfully
Jul 2 08:14:29 PM  error: exit status 1

I’m still trying to figure out how web apps are constructed, so I apologize if there’s an obvious fix for this.

Hi hope all is well and you are having a jolly day!

sarahgood

The error above means that there is an error when your program is starting up.
Unfortunately this error is generated on the cloud server by Docker and doesn’t really pinpoint the error in the app which could be the source of the problem.

There have only been two ways to solve this problem.

  1. Ensuring you carry the correct changes to requirements.txt using pip list and amending the server.py for your version of the .pkl model file. (please see cberkner posts for the process).

  2. The second way is to test the app on your desktop/laptop first, get it working, then deploy it on render.com see this post Deployment Platform: Render ✅ for how I deploy all my apps on my Macbook Pro. before deploying them in the cloud.

If you do resolve this error, it would be great if you post the cause or how you solved it, so we can all benefit.

Cheers mrfabulous1 :smiley: :smiley:

Hi Mikful hope you are having a great day!

Thanks for posting your deployment comments. This will definitely help people in the future as I believe from August 2020 fastai1 will be no more. which means the teddy bear repository on render.com won’t be correct anymore and people will need to make the amendments you have made.

Cheers mrfabulous1 :smiley: :smiley:

So glad I stumbled upon this thread as I was struggling for the last few days to do an initial deployment of my Nature Cat character classification webapp. I am glad to say I was finally able to deploy using Render after reading and playing with all the changes for requirements.txt and server.py files.

Special thanks to @mrfabulous1 for helping us newbies.
https://naturecat.onrender.com/ is live for the time being.

Here is what I used for Requirements.txt (may not be valid for long)
aiofiles==0.4.0
aiohttp==3.5.4
asyncio==3.4.3
fastai==1.0.60
torch==1.4.0
torchvision == 0.5.0
numpy==1.16.3
pillow~=6.0
python-multipart==0.0.5
starlette==0.12.0
uvicorn==0.7.1

1 Like

Hi @mrfabulous1. I went ahead and tried changing the requirements a few times to try to get them to match the version from Kaggle, but I keep getting the same error. I’m also running into issues installing older versions of torch on my machine, so I might just need to retrain my model on Gradient or something. :confused:

1 Like

Hi, I’ve been getting the same

Jul 5 04:48:18 PM  #10 ERROR: executor failed running [/bin/sh     
-c python app/server.py]: buildkit-runc did not terminate successfully
Jul 5 04:48:18 PM  ------
Jul 5 04:48:18 PM   > [6/6] RUN python app/server.py:
Jul 5 04:48:18 PM  ------
Jul 5 04:48:18 PM  error: failed to solve: rpc error: code = 
Unknown desc = executor failed running [/bin/sh -c python app/server.py]: buildkit-runc did not terminate successfully

error when I try to deploy in render that everyone else is getting. I am going to look for alternative ways to deploy my neural net unless someone can spot something amiss in the requirements.txt file I currently have and the !pip list from google colab:

requirements.txt:

    aiofiles==0.4.0
    aiohttp==3.5.4
    asyncio==3.4.3
    fastai==1.0.61
    numpy==1.18.5
    Pillow==7.0.0
    python-multipart==0.0.5
    starlette==0.13.4
    uvicorn==0.11.5
    torch==1.4.0
    torchvision==0.5.0

and my result of calling pip list:

pip list:
Package                  Version        
------------------------ ---------------
absl-py                  0.9.0          
aiofiles                 0.5.0          
aiohttp                  3.6.2          
alabaster                0.7.12         
albumentations           0.1.12         
altair                   4.1.0          
asgiref                  3.2.10         
astor                    0.8.1          
astropy                  4.0.1.post1    
astunparse               1.6.3          
async-timeout            3.0.1          
atari-py                 0.2.6          
atomicwrites             1.4.0          
attrs                    19.3.0         
audioread                2.1.8          
autograd                 1.3            
Babel                    2.8.0          
backcall                 0.2.0          
beautifulsoup4           4.6.3          
bleach                   3.1.5          
blis                     0.4.1          
bokeh                    1.4.0          
boto                     2.49.0         
boto3                    1.14.9         
botocore                 1.17.9         
Bottleneck               1.3.2          
branca                   0.4.1          
bs4                      0.0.1          
CacheControl             0.12.6         
cachetools               4.1.0          
catalogue                1.0.0          
certifi                  2020.6.20      
cffi                     1.14.0         
chainer                  6.5.0          
chardet                  3.0.4          
click                    7.1.2          
cloudpickle              1.3.0          
cmake                    3.12.0         
cmdstanpy                0.4.0          
colorlover               0.3.0          
community                1.0.0b1        
contextlib2              0.5.5          
convertdate              2.2.1          
coverage                 3.7.1          
coveralls                0.5            
crcmod                   1.7            
cufflinks                0.17.3         
cupy-cuda101             6.5.0          
cvxopt                   1.2.5          
cvxpy                    1.0.31         
cycler                   0.10.0         
cymem                    2.0.3          
Cython                   0.29.20        
daft                     0.0.4          
dask                     2.12.0         
dataclasses              0.7            
datascience              0.10.6         
decorator                4.4.2          
defusedxml               0.6.0          
descartes                1.1.0          
dill                     0.3.2          
distributed              1.25.3         
Django                   3.0.7          
dlib                     19.18.0        
docopt                   0.6.2          
docutils                 0.15.2         
dopamine-rl              1.0.5          
earthengine-api          0.1.226        
easydict                 1.9            
ecos                     2.0.7.post1    
editdistance             0.5.3          
en-core-web-sm           2.2.5          
entrypoints              0.3            
ephem                    3.7.7.1        
et-xmlfile               1.0.1          
fa2                      0.3.5          
fancyimpute              0.4.3          
fastai                   1.0.61         
fastdtw                  0.3.4          
fastprogress             0.2.3          
fastrlock                0.5            
fbprophet                0.6            
feather-format           0.4.1          
featuretools             0.4.1          
filelock                 3.0.12         
firebase-admin           4.1.0          
fix-yahoo-finance        0.0.22         
Flask                    1.1.2          
folium                   0.8.3          
fsspec                   0.7.4          
future                   0.16.0         
gast                     0.3.3          
GDAL                     2.2.2          
gdown                    3.6.4          
gensim                   3.6.0          
geographiclib            1.50           
geopy                    1.17.0         
gin-config               0.3.0          
glob2                    0.7            
google                   2.0.3          
google-api-core          1.16.0         
google-api-python-client 1.7.12         
google-auth              1.17.2         
google-auth-httplib2     0.0.3          
google-auth-oauthlib     0.4.1          
google-cloud-bigquery    1.21.0         
google-cloud-core        1.0.3          
google-cloud-datastore   1.8.0          
google-cloud-firestore   1.7.0          
google-cloud-language    1.2.0          
google-cloud-storage     1.18.1         
google-cloud-translate   1.5.0          
google-colab             1.0.0          
google-pasta             0.2.0          
google-resumable-media   0.4.1          
googleapis-common-protos 1.52.0         
googledrivedownloader    0.4            
graphviz                 0.10.1         
grpcio                   1.30.0         
gspread                  3.0.1          
gspread-dataframe        3.0.7          
gym                      0.17.2         
h11                      0.9.0          
h5py                     2.10.0         
HeapDict                 1.0.1          
holidays                 0.9.12         
html5lib                 1.0.1          
httpimport               0.5.18         
httplib2                 0.17.4         
httplib2shim             0.0.3          
httptools                0.1.1          
humanize                 0.5.1          
hyperopt                 0.1.2          
ideep4py                 2.0.0.post3    
idna                     2.9            
idna-ssl                 1.1.0          
image                    1.5.32         
imageio                  2.4.1          
imagesize                1.2.0          
imbalanced-learn         0.4.3          
imblearn                 0.0            
imgaug                   0.2.9          
importlib-metadata       1.6.1          
imutils                  0.5.3          
inflect                  2.1.0          
intel-openmp             2020.0.133     
intervaltree             2.1.0          
ipykernel                4.10.1         
ipython                  5.5.0          
ipython-genutils         0.2.0          
ipython-sql              0.3.9          
ipywidgets               7.5.1          
itsdangerous             1.1.0          
jax                      0.1.69         
jaxlib                   0.1.47         
jdcal                    1.4.1          
jedi                     0.17.1         
jieba                    0.42.1         
Jinja2                   2.11.2         
jmespath                 0.10.0         
joblib                   0.15.1         
jpeg4py                  0.1.4          
jsonschema               2.6.0          
jupyter                  1.0.0          
jupyter-client           5.3.4          
jupyter-console          5.2.0          
jupyter-core             4.6.3          
kaggle                   1.5.6          
kapre                    0.1.3.1        
Keras                    2.3.1          
Keras-Applications       1.0.8          
Keras-Preprocessing      1.1.2          
keras-vis                0.4.1          
kiwisolver               1.2.0          
knnimpute                0.1.0          
librosa                  0.6.3          
lightgbm                 2.2.3          
llvmlite                 0.31.0         
lmdb                     0.98           
lucid                    0.3.8          
LunarCalendar            0.0.9          
lxml                     4.2.6          
Markdown                 3.2.2          
MarkupSafe               1.1.1          
matplotlib               3.2.2          
matplotlib-venn          0.11.5         
missingno                0.4.2          
mistune                  0.8.4          
mizani                   0.6.0          
mkl                      2019.0         
mlxtend                  0.14.0         
more-itertools           8.4.0          
moviepy                  0.2.3.5        
mpmath                   1.1.0          
msgpack                  1.0.0          
multidict                4.7.6          
multiprocess             0.70.10        
multitasking             0.0.9          
murmurhash               1.0.2          
music21                  5.5.0          
natsort                  5.5.0          
nbconvert                5.6.1          
nbformat                 5.0.7          
networkx                 2.4            
nibabel                  3.0.2          
nltk                     3.2.5          
notebook                 5.2.2          
np-utils                 0.5.12.1       
numba                    0.48.0         
numexpr                  2.7.1          
numpy                    1.18.5         
nvidia-ml-py3            7.352.0        
oauth2client             4.1.3          
oauthlib                 3.1.0          
okgrade                  0.4.3          
opencv-contrib-python    4.1.2.30       
opencv-python            4.1.2.30       
openpyxl                 2.5.9          
opt-einsum               3.2.1          
osqp                     0.6.1          
packaging                20.4           
palettable               3.3.0          
pandas                   1.0.5          
pandas-datareader        0.8.1          
pandas-gbq               0.11.0         
pandas-profiling         1.4.1          
pandocfilters            1.4.2          
parso                    0.7.0          
pathlib                  1.0.1          
patsy                    0.5.1          
pexpect                  4.8.0          
pickleshare              0.7.5          
Pillow                   7.0.0          
pip                      19.3.1         
pip-tools                4.5.1          
plac                     1.1.3          
plotly                   4.4.1          
plotnine                 0.6.0          
pluggy                   0.7.1          
portpicker               1.3.1          
prefetch-generator       1.0.1          
preshed                  3.0.2          
prettytable              0.7.2          
progressbar2             3.38.0         
prometheus-client        0.8.0          
promise                  2.3            
prompt-toolkit           1.0.18         
protobuf                 3.10.0         
psutil                   5.4.8          
psycopg2                 2.7.6.1        
ptyprocess               0.6.0          
py                       1.8.2          
pyarrow                  0.14.1         
pyasn1                   0.4.8          
pyasn1-modules           0.2.8          
pycocotools              2.0.1          
pycparser                2.20           
pydata-google-auth       1.1.0          
pydot                    1.3.0          
pydot-ng                 2.0.0          
pydotplus                2.0.2          
PyDrive                  1.3.1          
pyemd                    0.5.1          
pyglet                   1.5.0          
Pygments                 2.1.3          
pygobject                3.26.1         
pymc3                    3.7            
PyMeeus                  0.3.7          
pymongo                  3.10.1         
pymystem3                0.2.0          
PyOpenGL                 3.1.5          
pyparsing                2.4.7          
pyrsistent               0.16.0         
pysndfile                1.3.8          
PySocks                  1.7.1          
pystan                   2.19.1.1       
pytest                   3.6.4          
python-apt               1.6.5+ubuntu0.3
python-chess             0.23.11        
python-dateutil          2.8.1          
python-louvain           0.14           
python-multipart         0.0.5          
python-slugify           4.0.0          
python-utils             2.4.0          
pytz                     2018.9         
PyWavelets               1.1.1          
PyYAML                   3.13           
pyzmq                    19.0.1         
qtconsole                4.7.5          
QtPy                     1.9.0          
regex                    2019.12.20     
requests                 2.23.0         
requests-oauthlib        1.3.0          
resampy                  0.2.2          
retrying                 1.3.3          
rpy2                     3.2.7          
rsa                      4.6            
s3fs                     0.4.2          
s3transfer               0.3.3          
scikit-image             0.16.2         
scikit-learn             0.22.2.post1   
scipy                    1.4.1          
screen-resolution-extra  0.0.0          
scs                      2.1.2          
seaborn                  0.10.1         
Send2Trash               1.5.0          
setuptools               47.3.1         
setuptools-git           1.2            
Shapely                  1.7.0          
simplegeneric            0.8.1          
six                      1.12.0         
sklearn                  0.0            
sklearn-pandas           1.8.0          
smart-open               2.0.0          
snowballstemmer          2.0.0          
sortedcontainers         2.2.2          
spacy                    2.2.4          
Sphinx                   1.8.5          
sphinxcontrib-websupport 1.2.2          
SQLAlchemy               1.3.17         
sqlparse                 0.3.1          
srsly                    1.0.2          
starlette                0.13.4         
statsmodels              0.10.2         
sympy                    1.1.1          
tables                   3.4.4          
tabulate                 0.8.7          
tbb                      2020.0.133     
tblib                    1.6.0          
tensorboard              2.2.2          
tensorboard-plugin-wit   1.6.0.post3    
tensorboardcolab         0.0.22         
tensorflow               2.2.0          
tensorflow-addons        0.8.3          
tensorflow-datasets      2.1.0          
tensorflow-estimator     2.2.0          
tensorflow-gcs-config    2.2.0          
tensorflow-hub           0.8.0          
tensorflow-metadata      0.22.2         
tensorflow-privacy       0.2.2          
tensorflow-probability   0.10.0         
termcolor                1.1.0          
terminado                0.8.3          
testpath                 0.4.4          
text-unidecode           1.3            
textblob                 0.15.3         
textgenrnn               1.4.1          
Theano                   1.0.4          
thinc                    7.4.0          
tifffile                 2020.6.3       
toolz                    0.10.0         
torch                    1.4.0          
torchsummary             1.5.1          
torchtext                0.3.1          
torchvision              0.5.0          
tornado                  4.5.3          
tqdm                     4.41.1         
traitlets                4.3.3          
tweepy                   3.6.0          
typeguard                2.7.1          
typing                   3.6.6          
typing-extensions        3.6.6          
tzlocal                  1.5.1          
umap-learn               0.4.4          
uritemplate              3.0.1          
urllib3                  1.24.3         
uvicorn                  0.11.5         
uvloop                   0.14.0         
vega-datasets            0.8.0          
wasabi                   0.7.0          
wcwidth                  0.2.5          
webencodings             0.5.1          
websockets               8.1            
Werkzeug                 1.0.1          
wheel                    0.34.2         
widgetsnbextension       3.5.1          
wordcloud                1.5.0          
wrapt                    1.12.1         
xarray                   0.15.1         
xgboost                  0.90           
xkit                     0.0.0          
xlrd                     1.1.0          
xlwt                     1.3.0          
yarl                     1.4.2          
yellowbrick              0.9.1          
zict                     2.0.0          
zipp                     3.1.0

It’s amazing the help @mrfabulous1 and @Mikful that you have provided to everyone here so far, but from the two painful hours I’ve spent on these issues this afternoon, I have to agree with @cberkner when he says

I do think that Fast.ai should remove Render as a recommended platform for this purpose

1 Like

Hi sarahgood, arthurconmy hope your both having a wonderful day!

  1. If you think your model is working then I suggest you contact render.com support for some support at the very least they should be able to help or tell you what the problem is and you can then share it on the forum.

  2. I have deployed over 70 classifiers since I started using fast.ai but I always test them on my desktop before deploying on the web. I currently have them running with different versions running of all the libraries including torch and torchvision going back over a year ago.

  3. I was able to deploy cberkner, model Deployment Platform: Render ✅. If you are willing to share your pip list and model I will check your models also.

  4. I think you should both try and deploy your models on other platforms and then come back and share your experiences with others. I originally started using render.com as it was easy and I found other deployments to difficult. :slightly_frowning_face:

  5. On this page https://course.fast.ai/ under production there are a number of other platforms that you can try. I also kwow that people have used heroku.com. Let us know which one you choose if you do so and whether it was easy or not.

  6. Also bear in mind that Mikful and gkumarg both managed to deploy their models, though they both had to do a bit of work to get it going.

Hope this helps.

Cheers mrfabulous1 :smile: :smile: :smile: :smile:

2 Likes

How do you find out the dependencies in the Colab environment? I don’t find it.

I just saw the command pip list in one post. It has a huge list of things. I don’t assume we need to put everything in the requirement.txt. Instead, we shall update the versions of existing libraries. Still, it gave me the same error everybody else is getting.

pip list

absl-py 0.9.0
alabaster 0.7.12
albumentations 0.1.12
altair 4.1.0
asgiref 3.2.10
astor 0.8.1
astropy 4.0.1.post1
astunparse 1.6.3
atari-py 0.2.6
atomicwrites 1.4.0
attrs 19.3.0
audioread 2.1.8
autograd 1.3
Babel 2.8.0
backcall 0.2.0
beautifulsoup4 4.6.3
bleach 3.1.5
blis 0.4.1
bokeh 1.4.0
boto 2.49.0
boto3 1.14.9
botocore 1.17.9
Bottleneck 1.3.2
branca 0.4.1
bs4 0.0.1
CacheControl 0.12.6
cachetools 4.1.0
catalogue 1.0.0
certifi 2020.6.20
cffi 1.14.0
chainer 6.5.0
chardet 3.0.4
click 7.1.2
cloudpickle 1.3.0
cmake 3.12.0
cmdstanpy 0.4.0
colorlover 0.3.0
community 1.0.0b1
contextlib2 0.5.5
convertdate 2.2.1
coverage 3.7.1
coveralls 0.5
crcmod 1.7
cufflinks 0.17.3
cupy-cuda101 6.5.0
cvxopt 1.2.5
cvxpy 1.0.31
cycler 0.10.0
cymem 2.0.3
Cython 0.29.20
daft 0.0.4
dask 2.12.0
dataclasses 0.7
datascience 0.10.6
decorator 4.4.2
defusedxml 0.6.0
descartes 1.1.0
dill 0.3.2
distributed 1.25.3
Django 3.0.7
dlib 19.18.0
docopt 0.6.2
docutils 0.15.2
dopamine-rl 1.0.5
earthengine-api 0.1.226
easydict 1.9
ecos 2.0.7.post1
editdistance 0.5.3
en-core-web-sm 2.2.5
entrypoints 0.3
ephem 3.7.7.1
et-xmlfile 1.0.1
fa2 0.3.5
fancyimpute 0.4.3
fastai 1.0.61
fastdtw 0.3.4
fastprogress 0.2.3
fastrlock 0.5
fbprophet 0.6
feather-format 0.4.1
featuretools 0.4.1
filelock 3.0.12
firebase-admin 4.1.0
fix-yahoo-finance 0.0.22
Flask 1.1.2
folium 0.8.3
fsspec 0.7.4
future 0.16.0
gast 0.3.3
GDAL 2.2.2
gdown 3.6.4
gensim 3.6.0
geographiclib 1.50
geopy 1.17.0
gin-config 0.3.0
glob2 0.7
google 2.0.3
google-api-core 1.16.0
google-api-python-client 1.7.12
google-auth 1.17.2
google-auth-httplib2 0.0.3
google-auth-oauthlib 0.4.1
google-cloud-bigquery 1.21.0
google-cloud-core 1.0.3
google-cloud-datastore 1.8.0
google-cloud-firestore 1.7.0
google-cloud-language 1.2.0
google-cloud-storage 1.18.1
google-cloud-translate 1.5.0
google-colab 1.0.0
google-pasta 0.2.0
google-resumable-media 0.4.1
googleapis-common-protos 1.52.0
googledrivedownloader 0.4
graphviz 0.10.1
grpcio 1.30.0
gspread 3.0.1
gspread-dataframe 3.0.7
gym 0.17.2
h5py 2.10.0
HeapDict 1.0.1
holidays 0.9.12
html5lib 1.0.1
httpimport 0.5.18
httplib2 0.17.4
httplib2shim 0.0.3
humanize 0.5.1
hyperopt 0.1.2
ideep4py 2.0.0.post3
idna 2.9
image 1.5.32
imageio 2.4.1
imagesize 1.2.0
imbalanced-learn 0.4.3
imblearn 0.0
imgaug 0.2.9
importlib-metadata 1.6.1
imutils 0.5.3
inflect 2.1.0
intel-openmp 2020.0.133
intervaltree 2.1.0
ipykernel 4.10.1
ipython 5.5.0
ipython-genutils 0.2.0
ipython-sql 0.3.9
ipywidgets 7.5.1
itsdangerous 1.1.0
jax 0.1.69
jaxlib 0.1.47
jdcal 1.4.1
jedi 0.17.1
jieba 0.42.1
Jinja2 2.11.2
jmespath 0.10.0
joblib 0.15.1
jpeg4py 0.1.4
jsonschema 2.6.0
jupyter 1.0.0
jupyter-client 5.3.4
jupyter-console 5.2.0
jupyter-core 4.6.3
kaggle 1.5.6
kapre 0.1.3.1
Keras 2.3.1
Keras-Applications 1.0.8
Keras-Preprocessing 1.1.2
keras-vis 0.4.1
kiwisolver 1.2.0
knnimpute 0.1.0
librosa 0.6.3
lightgbm 2.2.3
llvmlite 0.31.0
lmdb 0.98
lucid 0.3.8
LunarCalendar 0.0.9
lxml 4.2.6
Markdown 3.2.2
MarkupSafe 1.1.1
matplotlib 3.2.2
matplotlib-venn 0.11.5
missingno 0.4.2
mistune 0.8.4
mizani 0.6.0
mkl 2019.0
mlxtend 0.14.0
more-itertools 8.4.0
moviepy 0.2.3.5
mpmath 1.1.0
msgpack 1.0.0
multiprocess 0.70.10
multitasking 0.0.9
murmurhash 1.0.2
music21 5.5.0
natsort 5.5.0
nbconvert 5.6.1
nbformat 5.0.7
networkx 2.4
nibabel 3.0.2
nltk 3.2.5
notebook 5.2.2
np-utils 0.5.12.1
numba 0.48.0
numexpr 2.7.1
numpy 1.18.5
nvidia-ml-py3 7.352.0
oauth2client 4.1.3
oauthlib 3.1.0
okgrade 0.4.3
opencv-contrib-python 4.1.2.30
opencv-python 4.1.2.30
openpyxl 2.5.9
opt-einsum 3.2.1
osqp 0.6.1
packaging 20.4
palettable 3.3.0
pandas 1.0.5
pandas-datareader 0.8.1
pandas-gbq 0.11.0
pandas-profiling 1.4.1
pandocfilters 1.4.2
parso 0.7.0
pathlib 1.0.1
patsy 0.5.1
pexpect 4.8.0
pickleshare 0.7.5
Pillow 7.0.0
pip 19.3.1
pip-tools 4.5.1
plac 1.1.3
plotly 4.4.1
plotnine 0.6.0
pluggy 0.7.1
portpicker 1.3.1
prefetch-generator 1.0.1
preshed 3.0.2
prettytable 0.7.2
progressbar2 3.38.0
prometheus-client 0.8.0
promise 2.3
prompt-toolkit 1.0.18
protobuf 3.10.0
psutil 5.4.8
psycopg2 2.7.6.1
ptyprocess 0.6.0
py 1.8.2
pyarrow 0.14.1
pyasn1 0.4.8
pyasn1-modules 0.2.8
pycocotools 2.0.1
pycparser 2.20
pydata-google-auth 1.1.0
pydot 1.3.0
pydot-ng 2.0.0
pydotplus 2.0.2
PyDrive 1.3.1
pyemd 0.5.1
pyglet 1.5.0
Pygments 2.1.3
pygobject 3.26.1
pymc3 3.7
PyMeeus 0.3.7
pymongo 3.10.1
pymystem3 0.2.0
PyOpenGL 3.1.5
pyparsing 2.4.7
pyrsistent 0.16.0
pysndfile 1.3.8
PySocks 1.7.1
pystan 2.19.1.1
pytest 3.6.4
python-apt 1.6.5+ubuntu0.3
python-chess 0.23.11
python-dateutil 2.8.1
python-louvain 0.14
python-slugify 4.0.0
python-utils 2.4.0
pytz 2018.9
PyWavelets 1.1.1
PyYAML 3.13
pyzmq 19.0.1
qtconsole 4.7.5
QtPy 1.9.0
regex 2019.12.20
requests 2.23.0
requests-oauthlib 1.3.0
resampy 0.2.2
retrying 1.3.3
rpy2 3.2.7
rsa 4.6
s3fs 0.4.2
s3transfer 0.3.3
scikit-image 0.16.2
scikit-learn 0.22.2.post1
scipy 1.4.1
screen-resolution-extra 0.0.0
scs 2.1.2
seaborn 0.10.1
Send2Trash 1.5.0
setuptools 47.3.1
setuptools-git 1.2
Shapely 1.7.0
simplegeneric 0.8.1
six 1.12.0
sklearn 0.0
sklearn-pandas 1.8.0
smart-open 2.0.0
snowballstemmer 2.0.0
sortedcontainers 2.2.2
spacy 2.2.4
Sphinx 1.8.5
sphinxcontrib-websupport 1.2.2
SQLAlchemy 1.3.17
sqlparse 0.3.1
srsly 1.0.2
statsmodels 0.10.2
sympy 1.1.1
tables 3.4.4
tabulate 0.8.7
tbb 2020.0.133
tblib 1.6.0
tensorboard 2.2.2
tensorboard-plugin-wit 1.6.0.post3
tensorboardcolab 0.0.22
tensorflow 2.2.0
tensorflow-addons 0.8.3
tensorflow-datasets 2.1.0
tensorflow-estimator 2.2.0
tensorflow-gcs-config 2.2.0
tensorflow-hub 0.8.0
tensorflow-metadata 0.22.2
tensorflow-privacy 0.2.2
tensorflow-probability 0.10.0
termcolor 1.1.0
terminado 0.8.3
testpath 0.4.4
text-unidecode 1.3
textblob 0.15.3
textgenrnn 1.4.1
Theano 1.0.4
thinc 7.4.0
tifffile 2020.6.3
toolz 0.10.0
torch 1.5.1+cu101
torchsummary 1.5.1
torchtext 0.3.1
torchvision 0.6.1+cu101
tornado 4.5.3
tqdm 4.41.1
traitlets 4.3.3
tweepy 3.6.0
typeguard 2.7.1
typing 3.6.6
typing-extensions 3.6.6
tzlocal 1.5.1
umap-learn 0.4.4
uritemplate 3.0.1
urllib3 1.24.3
vega-datasets 0.8.0
wasabi 0.7.0
wcwidth 0.2.5
webencodings 0.5.1
Werkzeug 1.0.1
wheel 0.34.2
widgetsnbextension 3.5.1
wordcloud 1.5.0
wrapt 1.12.1
xarray 0.15.1
xgboost 0.90
xkit 0.0.0
xlrd 1.1.0
xlwt 1.3.0
yellowbrick 0.9.1
zict 2.0.0
zipp 3.1.0This text will be hidden

OK, so I retrained my model on Floydhub, and attempted to deploy the app. Here’s my repo, including the model.pkl file. These were the model packages from Floydhub’s pip list:

fastai==1.0.61
torch==1.5.0
torchvision==0.6.1

So this is the list for my requirements.txt file:

aiofiles==0.4.0
aiohttp==3.5.4
asyncio==3.4.3
fastai==1.0.61
numpy==1.18.4
pillow==5.4.1
python-multipart==0.0.5
starlette==0.12.0
uvicorn==0.11.5
torch==1.5.0
torchvision==0.6.1

I’ve tried testing the app locally, but using ‘python app/server.py serve’ I get this error:

Traceback (most recent call last):
  File "app/server.py", line 48, in <module>
    learn = loop.run_until_complete(asyncio.gather(*tasks))[0]
  File "C:\Users\[me]\anaconda3\lib\asyncio\base_events.py", line 583, in run_until_complete
    return future.result()
  File "app/server.py", line 33, in setup_learner
    await download_file(export_file_url, path / export_file_name)
  File "app/server.py", line 26, in download_file
    async with session.get(url) as response:
  File "C:\Users\[me]\anaconda3\lib\site-packages\aiohttp\client.py", line 1005, in __aenter__
    self._resp = await self._coro
  File "C:\Users\[me]\anaconda3\lib\site-packages\aiohttp\client.py", line 466, in _request
    ssl=ssl, proxy_headers=proxy_headers, traces=traces)
  File "C:\Users\[me]\anaconda3\lib\site-packages\aiohttp\client_reqrep.py", line 286, in __init__
    self.update_host(url)
  File "C:\Users\[me]\anaconda3\lib\site-packages\aiohttp\client_reqrep.py", line 340, in update_host
    raise InvalidURL(url)
aiohttp.client_exceptions.InvalidURL
(base)

I’ve managed to install Docker through pip install docker but when I run the docker line from the app readme, my environment doesn’t seem to recognize docker. I don’t know if it’s because I need to change the command to be able to run through conda or not.

I probably just don’t know enough about web dev to deploy this without going back and learning enough Django/React/some other framework to build it from scratch. :confused:

Hi sarahgood I hope you are having a wonderful day!

Having looked at your repo I found the following points of interest

  1. Floydhub or something else had locked server.py so when run on the desktop you don’t have permission to run it. - changed permisions on app directory.

  2. Floydhub appears to be using an unsupported combination of torchvision 0.6.1 and 1.5.0 which was stoopping your app from starting. - changed requirements.txt line to

torch==1.5.1
  1. The model.pkl file the should be in the app drectory. - put model.pkl in app directory

I tested your model running the same command as you from terminal on my macbook pro.

  1. Don’t forget to edit your index.html file because it looks like a bear classifier at the moment, we don’t want to confuse your users. :smiley:

As you can see your medieval classifier is working just fine, there must be a fine line between medieval and post medieval as my google search was for a post medieval item. :smiley: :smiley:

You do not need to run docker to test your app at all. See one of my previous posts.

The gentleman who donated this repo actually was the creator of Django, having played with Django, I think it would be a little more tricky than this repo to achieve.

The points of interest above, mean you have learned an invaluable lesson that is how much work it can take to build a simple app which is why @jeremy says build something. This little app uses Github, Floydhub, css, html, fastai, Learn AI concepts, aiohttp, asyncio, uvicorn, Online Jupyter notebooks, Starlette, Javascript , Unix commands, Python, and Docker. Which many people don’t realise when they first start.

since starting on fastai about a year ago I have played with at least a couple of hundred libraries.

Hope this helps, don’t forget to put it on Share your work here ✅ when you get it working. :smiley:

Cheers mrfabulous1 :grinning: :grinning:

1 Like

Hi Cesar_Zeus hope you are having a wonderful day also!

You just need the files listed in your requirements.txt file like in the post here.
Deployment Platform: Render ✅ Your version numbers may be different though.

Cheers mrfabulous1 :smiley: :smiley:

Dude, I can’t thank you enough. I finally got it live! I’m a bit miffed at myself that I didn’t realize the model file should’ve been in the app folder (and it’s sort of obvious when I think about it) but at least now I know going forward. Once I refine my model (and maybe adding some CSS styles) I’ll be sharing this for sure.

Hip Hip Hooray! Glad you got your model working sarahgood!
It’s always easy with hindsight. But having these troublesome points of interest while building your model means that you have learned way more than if it had gone perfectly. Every cloud has a silver lining!

Well done!

mrfabulous1 :smiley: :smiley:

ps. thanks for the acknowledgement :smiley: :smiley: