我正在为 pytorch 编写一个 C++ 扩展,其中我需要通过索引访问张量的元素,并且还需要将元素转换为标准 C++ 类型。这是一个简短的例子。假设我有一个二维张量a,我需要访问a[i][j]它并将其转换为浮点数。
#include <torch/extension.h>\n\nfloat get(torch::Tensor a, int i, int j) {\n return a[i][j];\n}\nRun Code Online (Sandbox Code Playgroud)\n上面的内容被放入一个名为tensortest.cpp. 在另一个文件中setup.py我写
from setuptools import setup, Extension\nfrom torch.utils import cpp_extension\n\nsetup(name=\'tensortest\',\n ext_modules=[cpp_extension.CppExtension(\'tensortest_cpp\', [\'tensortest.cpp\'])],\n cmdclass={\'build_ext\': cpp_extension.BuildExtension})\nRun Code Online (Sandbox Code Playgroud)\n当我运行python setup.py install编译器时报告以下错误
running install\nrunning bdist_egg\nrunning egg_info\ncreating tensortest.egg-info\nwriting tensortest.egg-info/PKG-INFO\nwriting dependency_links to tensortest.egg-info/dependency_links.txt\nwriting top-level names to tensortest.egg-info/top_level.txt\nwriting manifest file \'tensortest.egg-info/SOURCES.txt\'\n/home/trisst/.local/lib/python3.8/site-packages/torch/utils/cpp_extension.py:335: UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find …Run Code Online (Sandbox Code Playgroud)