定制c++;扩展错误:粘贴“;pybind11_init”;和“‘;乙状结肠’”;未提供有效的预处理令牌 我试图用PyTrac添加自定义的C++扩展。

定制c++;扩展错误:粘贴“;pybind11_init”;和“‘;乙状结肠’”;未提供有效的预处理令牌 我试图用PyTrac添加自定义的C++扩展。,c++,pytorch,pybind11,C++,Pytorch,Pybind11,我现在正在学习教程 我已经创建了两个文件 project/ main.py sigmoid.cpp main.py from torch.utils.cpp_extension import load lltm_cpp = load(name=‘sigmoid’, sources=[‘sigmoid.cpp’], verbose=True) sigmoid.cpp #include <torch/extension.h> #include <iostream&g

我现在正在学习教程

我已经创建了两个文件

project/
  main.py
  sigmoid.cpp
main.py

from torch.utils.cpp_extension import load 
lltm_cpp = load(name=‘sigmoid’, sources=[‘sigmoid.cpp’], verbose=True)
sigmoid.cpp

#include <torch/extension.h>

#include <iostream>

torch::Tensor d_sigmoid(torch::Tensor z) {
  auto s = torch::sigmoid(z);
  return (1 - s) * s;
}

PYBIND11_MODULE('sigmoid', m) {
  m.def('d_sigmoid', &d_sigmoid, 'sigmoid');
}

我猜:与Python不同,单引号()/Cuff> >与C++中的双引号(<代码>)/代码>不等价。前者用于构造<代码> char 文字,因此只能封装单个字符,后者用于构造字符串文字(严格地说是代码> const char */COD>文字).所以试着换一个

PYBIND11_MODULE('sigmoid', m) {
  m.def('d_sigmoid', &d_sigmoid, 'sigmoid');
}


看看是否有帮助。

< P>我猜:与Python不同,单引号()/Cuff> >与C++中的双引号()/Cuff>不等价。前者用于构造
char
文本,因此它们只能包装单个字符,而后者用于构造字符串文本(严格来说
const char*
literals)。所以试着换一个

PYBIND11_MODULE('sigmoid', m) {
  m.def('d_sigmoid', &d_sigmoid, 'sigmoid');
}

看看这是否有帮助

PYBIND11_MODULE("sigmoid", m) {
  m.def("d_sigmoid", &d_sigmoid, "sigmoid");
}