python pybid 11 을 통 해 Eigen 가속 코드 를 사용 하 는 절차

python 은 쉽게 시작 할 수 있 는 프로 그래 밍 언어 입 니 다.그러나 어떤 때 는 python 으로 작 성 된 프로그램 이 실행 속 도 를 보장 하지 못 할 때 가 있 습 니 다.(예 를 들 어 while 와 for)이 럴 때 우 리 는 c++등 을 통 해 코드 의 속 도 를 올 려 야 합 니 다.다음은 제 가 pybid 11 을 사용 하여 c++의 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 가속 코드 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!

좋은 웹페이지 즐겨찾기