python pybid 11 을 통 해 Eigen 가속 코드 를 사용 하 는 절차
첫 번 째 단계:준비 시스템 과 IDE:
Windows 10
vs 2015(c+코드 디 버 깅 에 사용)
vscode(python 코드 디 버 깅)
두 번 째 단계:python 가상 환경:
1.가상 python 가상 환경 만 들 기:vscode 의 terminal 에서 실행
python -m venv env
2.다운로드 Eigen:Eigen 을 현재 디 렉 터 리 에 압축 을 푸 는 이름 은 eigen-3.3.8 입 니 다.3.vscode 의 terminal 에서 가상 환경 활성화:
./env/Scripts/Activate.ps1
4.pybind 11 설치:
pip install pybind11
5.numpy 설치==1.19.3(1.19.4 사용 시 문제 가 있 을 수 있 음)
pip install numpy==1.19.3
STEP 3:vs 2015 를 사용 하여 cpp 작성python.cpp,bug 가 없 음 을 보증 합 니 다.
#include <Eigen/Dense>
using namespace std
using namespace Eigen
MatrixXd add_mat(MatrixXd A_mat, MatrixXd B_mat)
{
return A_mat + B_mat;
}
STEP 4:pybid 11 을 cpp 로 사용python.cpp python 인터페이스 추가
// cpp_python.cpp : "main" 。 。
//
#include <pybind11/pybind11.h>
#include <pybind11/eigen.h>
#include<pybind11/numpy.h>
#include<fstream>
#include<iostream>
#include <Eigen/Dense>
using namespace std;
using namespace Eigen;
MatrixXd add_mat(MatrixXd A_mat, MatrixXd B_mat)
{
return A_mat + B_mat;
}
namespace py = pybind11;
PYBIND11_MODULE(add_mat_moudle, m)
{
m.doc() = "Matrix add";//
m.def("mat_add_py"/* pyhon */, &add_mat);
}
다섯 번 째 단계:setup.py 를 설정 하여 c+코드 를 컴 파일 합 니 다.
from setuptools import setup
from setuptools import Extension
add_mat_module = Extension(name='add_mat_moudle', #
sources=['cpp_python.cpp'], #
include_dirs=[r'.\eigen-3.3.8',
r'.\env\Scripts', #
r'.\env\Lib\site-packages\pybind11\include']
)
setup(ext_modules=[add_mat_module])
STEP 6:컴 파일 테스트주의:나의 cpppython.cpp 와 setup.py 는 같은 폴 더 아래 에 있 습 니 다.
실행:"python.\setup.py buildext--inplace"는 아래 의 결 과 를 얻 을 수 있 습 니 다..pyd 파일 을 생 성 하 는 것 은 우리 가 이미 컴 파일 에 성공 했다 는 것 을 나타 냅 니 다.
실행 테스트:
이상 은 python 이 pybid 11 을 통 해 Eigen 가속 코드 를 사용 하 는 절차 에 대한 상세 한 내용 입 니 다.python 가속 코드 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.