解决neural-renderer-pytorch编译安装问题
程序员文章站
2022-06-11 08:59:38
...
问题概述
由于neural-renderer-pytorch这个python资源库本身的编写问题,导致和高版本的pytorch不兼容,我使用的是 pytorch=1.8.1
错误列表如下
ERROR: Command errored out with exit status 1:
command: /home/majunfu/anaconda3/envs/spin/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-r1_gkzyn/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-r1_gkzyn/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-m2pz9umc
cwd: /tmp/pip-req-build-r1_gkzyn/
Complete output (156 lines):
running bdist_wheel
/home/majunfu/anaconda3/envs/spin/lib/python3.6/site-packages/torch/utils/cpp_extension.py:369: UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find ninja.. Falling back to using the slow distutils backend.
warnings.warn(msg.format('we could not find ninja.'))
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.6
creating build/lib.linux-x86_64-3.6/neural_renderer
copying neural_renderer/get_points_from_angles.py -> build/lib.linux-x86_64-3.6/neural_renderer
copying neural_renderer/mesh.py -> build/lib.linux-x86_64-3.6/neural_renderer
copying neural_renderer/look_at.py -> build/lib.linux-x86_64-3.6/neural_renderer
copying neural_renderer/renderer.py -> build/lib.linux-x86_64-3.6/neural_renderer
copying neural_renderer/load_obj.py -> build/lib.linux-x86_64-3.6/neural_renderer
copying neural_renderer/projection.py -> build/lib.linux-x86_64-3.6/neural_renderer
copying neural_renderer/vertices_to_faces.py -> build/lib.linux-x86_64-3.6/neural_renderer
copying neural_renderer/look.py -> build/lib.linux-x86_64-3.6/neural_renderer
copying neural_renderer/save_obj.py -> build/lib.linux-x86_64-3.6/neural_renderer
copying neural_renderer/perspective.py -> build/lib.linux-x86_64-3.6/neural_renderer
copying neural_renderer/lighting.py -> build/lib.linux-x86_64-3.6/neural_renderer
copying neural_renderer/__init__.py -> build/lib.linux-x86_64-3.6/neural_renderer
copying neural_renderer/rasterize.py -> build/lib.linux-x86_64-3.6/neural_renderer
creating build/lib.linux-x86_64-3.6/neural_renderer/cuda
copying neural_renderer/cuda/__init__.py -> build/lib.linux-x86_64-3.6/neural_renderer/cuda
running build_ext
building 'neural_renderer.cuda.load_textures' extension
creating build/temp.linux-x86_64-3.6
creating build/temp.linux-x86_64-3.6/neural_renderer
creating build/temp.linux-x86_64-3.6/neural_renderer/cuda
gcc -pthread -B /home/majunfu/anaconda3/envs/spin/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/home/majunfu/anaconda3/envs/spin/lib/python3.6/site-packages/torch/include -I/home/majunfu/anaconda3/envs/spin/lib/python3.6/site-packages/torch/include/torch/csrc/api/include -I/home/majunfu/anaconda3/envs/spin/lib/python3.6/site-packages/torch/include/TH -I/home/majunfu/anaconda3/envs/spin/lib/python3.6/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/majunfu/anaconda3/envs/spin/include/python3.6m -c neural_renderer/cuda/load_textures_cuda.cpp -o build/temp.linux-x86_64-3.6/neural_renderer/cuda/load_textures_cuda.o -DTORCH_API_INCLUDE_EXTENSION_H -DPYBIND11_COMPILER_TYPE="_gcc" -DPYBIND11_STDLIB="_libstdcpp" -DPYBIND11_BUILD_ABI="_cxxabi1011" -DTORCH_EXTENSION_NAME=load_textures -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++14
......................................................................
省略................................................................
......................................................................
DeprecatedTypeProperties & type() const {
^~~~
neural_renderer/cuda/load_textures_cuda.cpp:15:23: error: ‘AT_CHECK’ was not declared in this scope
#define CHECK_CUDA(x) AT_CHECK(x.type().is_cuda(), #x " must be a CUDA tensor")
^
neural_renderer/cuda/load_textures_cuda.cpp:15:23: note: in definition of macro ‘CHECK_CUDA’
#define CHECK_CUDA(x) AT_CHECK(x.type().is_cuda(), #x " must be a CUDA tensor")
^~~~~~~~
neural_renderer/cuda/load_textures_cuda.cpp:28:5: note: in expansion of macro ‘CHECK_INPUT’
CHECK_INPUT(image);
^
neural_renderer/cuda/load_textures_cuda.cpp:15:23: note: suggested alternative: ‘DCHECK’
#define CHECK_CUDA(x) AT_CHECK(x.type().is_cuda(), #x " must be a CUDA tensor")
^
neural_renderer/cuda/load_textures_cuda.cpp:15:23: note: in definition of macro ‘CHECK_CUDA’
#define CHECK_CUDA(x) AT_CHECK(x.type().is_cuda(), #x " must be a CUDA tensor")
^~~~~~~~
neural_renderer/cuda/load_textures_cuda.cpp:28:5: note: in expansion of macro ‘CHECK_INPUT’
CHECK_INPUT(image);
^
neural_renderer/cuda/load_textures_cuda.cpp:15:39: warning: ‘at::DeprecatedTypeProperties& at::Tensor::type() const’ is deprecated: Tensor.type() is deprecated. Instead use Tensor.options(), which in many cases (e.g. in a constructor) is a drop-in replacement. If you were using data from type(), that is now available from Tensor itself, so instead of tensor.type().scalar_type(), use tensor.scalar_type() instead and instead of tensor.type().backend() use tensor.device(). [-Wdeprecated-declarations]
#define CHECK_CUDA(x) AT_CHECK(x.type().is_cuda(), #x " must be a CUDA tensor")
^
neural_renderer/cuda/load_textures_cuda.cpp:17:24: note: in expansion of macro ‘CHECK_CUDA’
#define CHECK_INPUT(x) CHECK_CUDA(x); CHECK_CONTIGUOUS(x)
^~~~~~~~~~
neural_renderer/cuda/load_textures_cuda.cpp:29:5: note: in expansion of macro ‘CHECK_INPUT’
CHECK_INPUT(faces);
^
解决方案
step 1
下载源码:https://github.com/daniilidis-group/neural_renderer
step 2
修改源码中以下文件:
- neural_renderer/cuda/create_texture_image_cuda.cpp
- neural_renderer/cuda/load_textures_cuda.cpp
- neural_renderer/cuda/rasterize_cuda.cpp
修改内容:将三个文件中所有的 AT_CHECK 替换为 TORCH_CHECK
step 3
进入到 neural_renderer-master 文件夹下,执行 python setup.py install
已经修改好的源码
上一篇: 图解WinHex使用入门教程
推荐阅读
-
解决安装pycharm后不能执行python脚本的问题
-
平板电脑安装软件后桌面应用双图标重复问题解决方法
-
小米盒子安装第三方软件详细教程 完美解决看直播问题
-
ubuntu vps安装docker报错:Cannot connect to the Docker daemon at unix:///var/run/docker.sock.问题解决
-
12306网站根证书出问题了没办法买票怎么解决?12306证书安装的方法
-
DEV C++在win7系统中安装以及遇到的一些问题解决
-
Apache2.4.2编译安装2个常见错误和解决方法
-
详解windows python3.7安装numpy问题的解决方法
-
如何LNMP一键包安装后解决MySQL无法远程连接问题?
-
解决安装Coreldraw X5时遇到的一系列问题