나는 ctypes를 사용하여 fann (C로 작성된 신경망 라이브러리)을 python3에 사용하려고합니다. 여기 내 축소 된 코드는 지금까지 있습니다 :python3 가져온 라이브러리에서 반환 유형에 대해 ctypes 구조체를 정의하는 방법
from ctypes import *
cdll.LoadLibrary("/usr/local/lib/libdoublefann.dylib")
fann = CDLL("/usr/local/lib/libdoublefann.dylib")
# Call fann to create a neural network
nn = fann.fann_create_from_file(b'/Users/xxxxx/Code/fanncode/net/nnf_25_1339802027.net')
# this outputs 3909360
print(nn)
나는 시도하고 지금 fann 신경망해야 윈 변수에 대한 fann 라이브러리에 다른 함수를 호출하면, 나도 (예를 들어 Segmentation fault: 11
또는 AttributeError: 'int' object has no attribute 'getMSE'
를 얻을 수).
FANN_EXTERNAL struct fann *FANN_API fann_create_from_file(const char * configuration_file)
그래서 내가 선언 할 필요가 있다고 생각 : 내 문제는 함수에 대한 fann 문서 fann_create_from_file 상태 반면,하는 ctypes 설명서에 따라 변수 nn은, int를 되 고 종료하는 것을 생각 다음
그리고
class FANN_API(Structure):
<fields and things which I don't know what they should be>
는 수행
fann.fann_create_from_file.restype = FANN_API
내 문제는 내가 구조체 FANN_API이해야 찾을 수 없다는 것입니다. fann.h의 130 행에는 #define FANN_API
이 있지만 그 정의 나 그 뒤에 나오는 것은 없습니다.
구조체를 정의해야한다고 생각하는 것이 맞습니까? 그렇다면 어떻게 파이썬 코드에서 선언 할 수있는 형식을 찾을 수 있습니까? 그렇지 않다면 아무도 내가해야 할 일을 제안 할 수 있습니다/내 코드를 작동 시키려면 무엇을 읽어야합니까?
감사합니다.
저를 위해 약간의 문제를 해결해 주셔서 감사합니다. c_void_p를 사용하여 시도했지만 작동하지 않습니다. 나는 FANN 소스 코드에 대해 알아보고 ctyp에서'struct fann'을 만드는 법을 알아야합니다. – ilikeprogramming