记录一次使用DJL的大坑
一、前言🗄
最近学习深度学习但是使用pytorch来部署模型到web端又不是很方便,所以想着🤔是不是Java有途径直接加载训练好的模型,经过一顿操作:🔎真就找到了一个通过Java进行深度学习的库,DJL(深度Java学习),同时寻找到以下博客:
https://blog.csdn.net/jerry11112/article/details/108166689,
直接创建springboot+Maven+DJL,使用Java调取pytorch模型,不要太爽🤣,但是万万没有想到的这里原来拥有着不少坑,所以在此记录以下自己遇见的几个少见的坑,帮助哪些想要使用DJL却遇见坑直接放弃的人,找到解决方法✨。
1.第一坑Java版本问题:
随着Java版本不断更新,Java加入的新功能越来越多可是用于学习的我们大多数还停留在Java1.8.0,虽然这个版本大部分Java功能都能用,但是如果你想要使用DJL这个包的话,最好还是直接使用java11这样会避免许多麻烦👋🏼
2.第二坑模型下载问题:
在下载模型的时候笔者直接使用的亚马逊提供的resnet模型地址,这样在国内即使没有翻🧱我们还是可以快速的下载训练好的模型,可是我还是推荐你开启你的✈这样会快不少,
3.第三坑模型加载路径中文问题:
下载好模型我们通过zoomodel加载时有时会出现找不到文件的错误这个时候请检查你的项目是不是在中文目录下,存在中文它是找不到你下好的模型的
4. 报:No deep learning engine found(最难最大的坑)
出现这种情况的原因很多,笔者遇见的问题可能是少见的,一波搜索🔎出来的答案都不尽人意,也没有解决,废话不说直接上bug截图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
图片较长,分成两个部分
由上面的截图可以看到是我的一个文件路径出来问题,直接按照官方连接去查照解决方法官方连接:https://github.com/awslabs/djl/blob/master/docs/development/troubleshooting.md,下载了DirectX修复工具来安装遗失依赖项,但是结果一样出现这种错误,无奈另辟蹊径直接搜索文件找不到的原因,功夫不负有缘人在下面的连接中给了我灵感🥰:
python - Pytorch could not find module - Stack Overflow
这个哥们的评论:
所以经过一顿操作:
1️⃣找到报错的地址查看caffe2_nvrtc.dell是否存在,但是它又存在就很奇怪,
2️⃣去我们安装的pytorch的anaconda环境看看,会得到一个一样名字的文件,但是一会发现它们的大小不一样。
4️⃣将这个文件复制到前面文件路径并覆盖它,
5️⃣然后打开你的编译环境,运行djl相关代码神奇的现象就发生了,你的项目可以运行了,这里注意以下,自己预测的图片最好和项目同一个文件夹下
二、总结
java和pytorch的完美结合估计还有很远的路要走,但是DJL的出现可以说对与Java加速深度学习部署到生产环境有很好的作用,虽然在使用的时候遇见的不少的坑,但是两者融合后还是很不错的,洋洋洒洒写了这些,希望帮助到想使用DJL但是又遇见不少坑的朋友们避免这些坑。