python 3 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
    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 build_ext --inplace"        ,  .pyd            。

    실행 테스트:

    python 3 이 pybid 11 을 통 해 Eigen 가속 코드 를 사용 하 는 절차 에 대한 상세 한 설명 은 여기까지 입 니 다.더 많은 관련 python 3 pybid 11 Eigen 가속 코드 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기