오픈 소스 신경망 라이브러리
오픈 소스 신경망 라이브러리를 찾고 있습니다. 지금까지 FANN, WEKA 및 OpenNN을 살펴 보았습니다. 내가 봐야 할 다른 것들이 있습니까? 물론 기준은 문서화, 예제 및 사용 용이성입니다.
마지막 업데이트 : 2019/01/07 (이 답변은 수시로 업데이트됩니다 ...)
신경망의 간단한 구현
- FANN 은 C / C ++에서 매우 널리 사용되는 구현이며 다른 많은 언어에 대한 바인딩이 있습니다.
- 저는 WEKA가 신경망을위한 좋은 구현을 가지고 있지 않다고 생각합니다. Java (및 C #)를위한 더 나은 라이브러리가 있습니다 : Encog .
- scikit-learn (Python) 0.18 (현재 개발 버전)에는 피드 포워드 신경망 ( API 문서 )이 구현됩니다.
- 그리고 OpenANN ( 문서 ) 이라는 내 프로젝트를 언급해야합니다 . C ++로 작성되었으며 Python 바인딩이 있습니다.
딥 러닝
신경망은 현재 매우 인기가 있기 때문에 ( "딥 러닝") 많은 연구 라이브러리를 사용할 수 있습니다. 대부분은 설정, 통합 및 사용이 쉽습니다. 위에서 언급 한 라이브러리만큼 쉽지는 않습니다. 첨단 기능과 고성능 (GPU 등)을 제공합니다. 이러한 라이브러리의 대부분은 자동 차별화 기능도 있습니다. 새로운 아키텍처, 손실 함수 등을 쉽게 지정할 수 있으며 수동으로 역 전파를 지정할 필요가 없습니다.
- Keras 는 사용 가능하고 강력하며 적극적으로 개발 된이 카테고리 중 최고라고 생각합니다. 그것은 사용할 수 있습니다 Tensorflow , Theano 및 CNTK를 백엔드로.
- Google의 TensorFlow (C ++ / Python)
- Microsoft의 CNTK (Python 교육 / C ++ / C # / Java / Python 평가)
- Python 바인딩을 사용하는 C ++의 Berkeley Vision 및 학습 센터의 Caffe
- Facebook의 PyTorch 는 Python에서 C / C ++로 확장 할 수 있습니다.
- mxnet (C ++, Python, R, Scala, Julia, Matlab, Javascript)
- Theano (Python) 기반 블록
- Intel Nervana의 Neon 은 매우 효율적인 구현을 제공합니다 (Python).
- Deeplearning4j (자바)
- Chainer (Python)
- MatConvNet (Matlab)
- Python 바인딩을 사용하는 CUDA / C ++의 Baidu에서 패들 패들
- Python 바인딩을 사용하는 Cuda / C ++ 11의 Sony의 NNabla
GPU 가속 라이브러리에 대한 성능 비교는 여기 에서 찾을 수 있습니다 (불행히도 약간 구식 임). GPU와 라이브러리 버전의 비교는 여기에서 확인할 수 있습니다 .
비활성 :
- Theano (Python) 및 상위 수준 API :
- Python 바인딩을 사용하는 CUDA / C ++의 cuda-convnet2
- Hebel (Python)
- Python 바인딩을 사용하는 C ++의 Facebook의 Caffe2 ; PyTorch와 합류했습니다
- Torch 7 용 신경망 (Lua, Torch 7은 "Matlab과 유사한 환경", Torch의 머신 러닝 알고리즘 개요 )
- PyBrain (Python)에는 다양한 유형의 신경망과 훈련 방법이 포함되어 있습니다.
매개 변수 공유 또는 다양한 유형의 컨볼 루션 아키텍처 생성과 같이 네트워크 구성을 정의하는 데 유연성을 원한다면 Torch 라이브러리 제품군 ( http://www.torch.ch/)을 살펴 봐야합니다 .
아직 Torch 7에 대한 문서를 읽지 않았지만 다른 버전에 대한 문서는 꽤 괜찮 았고 코드는 매우 읽기 쉽습니다 (Lua 및 C ++에서).
accord.net 프레임 워크를 사용할 수 있습니다. http://accord-framework.net/
여기에는 Levenberg-Marquardt, Parallel Resilient Backpropagation, Nguyen-Widrow 초기화 알고리즘, Deep Belief Networks 및 Restrictured Boltzmann Machines 및 기타 많은 신경망 관련 항목과 같은 신경 학습 알고리즘이 포함되어 있습니다.
Netlab 은 일반적으로 사용되는 Matlab 라이브러리입니다. (무료 및 오픈 소스)
Netlab 도구 상자는 교육, 연구 및 응용 프로그램 개발에 사용하기 위해 이론적으로 잘 확립 된 신경망 알고리즘 및 관련 모델의 시뮬레이션에 필요한 중앙 도구를 제공하도록 설계되었습니다. 그것은 복잡한 시스템의 수학 연구에 의해 석사에서 광범위하게 사용됩니다.
Netlab 라이브러리에는 광범위한 데이터 분석 기술의 소프트웨어 구현이 포함되어 있으며, 대부분은 아직 표준 신경망 시뮬레이션 패키지에서 사용할 수 없습니다. Netlab은 Matlab 버전 5.0 이상에서 작동하지만 핵심 Matlab 만 필요합니다 (즉, 다른 도구 상자가 필요하지 않음). 이전 버전의 Matlab과 호환되지 않습니다.
참고 URL : https://stackoverflow.com/questions/11477145/open-source-neural-network-library
'Nice programing' 카테고리의 다른 글
C ++ 11에 소켓이 있습니까? (0) | 2020.11.28 |
---|---|
mediatype, contenttype 및 mimetype의 차이점은 무엇입니까? (0) | 2020.11.28 |
android Android 지원 리포지토리 대 Android 지원 라이브러리 대 Google 리포지토리 대 Google Play 서비스의 차이점은 무엇입니까? (0) | 2020.11.28 |
docker-ce 및 docker-ee와 관련하여 docker.io는 무엇입니까? (0) | 2020.11.28 |
MVVM 광기 : 명령 (0) | 2020.11.28 |