python 3 pybid 11 을 통 해 Eigen 가속 코드 를 사용 하 는 절차 에 대한 상세 한 설명
첫 번 째 단계:준비 시스템 과 IDE:
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 가속 코드 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Jupyter 공식 DockerHub에 대한 메모에 기재되어 있다. base-notebook minimal-notebook scipy-notebook tensorflow-notebook datascience-notebook pyspark-notebook all-s...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.