我目前正在开发一个项目,尝试在 AzureML 上实现 DINO:DETR (https://github.com/IDEA-Research/DINO) 来训练模型。我已经成功创建了一个包含 CUDA 11.3 和 torch 1.12.0 的环境,并且该环境已成功编译。安装指南的第 4 步是使用 setup.py 文件安装软件包(以安装 MultiScaleDeformableAttention):
python setup.py build install
第一个问题:是否可以直接在环境(stc-cuda-env)中安装这个setup.py?
我现在使用的方法是在 main.py 文件中使用 subprocess 将此 setup.py 直接安装到计算中。
subprocess.run(["python", "setup.py", "build", "install"])
我可以在我的日志文件中找到以下信息,这表明安装成功:
Installed /opt/conda/envs/ptca/lib/python3.8/site-packages/MultiScaleDeformableAttention-1.0-py3.8-linux-x86_64.egg
Processing dependencies for MultiScaleDeformableAttention==1.0
Finished processing dependencies for MultiScaleDeformableAttention==1.0
导入 MultiScaleDeformableAttention 时(手动或在代码函数 build_model_main() 中),出现以下错误: ModuleNotFoundError: No module named 'MultiScaleDeformableAttention'
第二个问题:如何在AzureML上成功导入/安装包?
顺便说一句:我检查了 GPU 是否可用,输出是 True
print(torch.cuda.is_available())
对于模块问题,您应该能够直接安装特定版本的模块,因为 setup.py 已经被识别:
pip3 install multiscaledeformableattention==1.0
至于直接安装它,我发现的唯一方法在here中有描述,但它依赖于使用docker部署整个自定义镜像,这并不理想。