신경망에 sklearn 또는 tensorflow를 사용해야합니까?


7

cs231에서 딥 러닝을 위해 신경망 학습을 시작했습니다. Python에서 신경망을 구현하려고합니다. Tensorflow 또는 scikit-learn을 사용하고 있습니다. 이 응용 프로그램에 대한 이러한 라이브러리의 장단점은 무엇입니까?

답변:


11

Sklearn은 Deep Neural Networks를 많이 지원하지 않습니다. 두 가지 중에서 딥 러닝에 관심이 있으므로 tensorflow를 선택 하십시오 .

그러나 tensorflow를 백엔드로 사용하지만 더 쉬운 인터페이스를 제공하는 keras 사용을 제안합니다.


4

cs231n 과정에서 내가 기억하는 한 NumPy 이외의 것을 사용하여 신경망을 구현하는 데 대부분의 시간을 소비합니다! 그것은 저에게 정말 놀라운 학습 경험이었습니다.

그 후, 마지막 과제에서 더 복잡한 네트워크를 구축하려면 TensorFlow ( examples ) 또는 Pytorch ( examples )를 반드시 확인해야합니다 . 이 프레임 워크는 CS231n (연구자 및 산업 전문가)과 같은 과정을 만드는 사람들과 같은 사람들에 의해 만들어졌습니다.

알아 SciKit 신경 네트워크 모듈은 같은 같은 별도의 활성화 함수로 길쌈 네트워크 (CNNs), 재발 성 네트워크 (RNNs) 또는 다른 이국적인 구성 요소로 분류 또는 회귀,하지만 아무것도 애호가 중 하나에 대한 피드 포워드 (feed-forward) 네트워크로 구성되어 있습니다.

Keras가 시작하기에 훌륭한 대안이라는 Djib2011에 동의합니다. TensorFlow, CNTK 또는 Theano 중에서 백엔드로 선택할 수 있습니다. Keras는 세 가지 몬스터 프레임 워크를 모두 둘러싼 훌륭한 유니폼 래퍼이므로 작업을 매우 빠르게 수행 할 수 있습니다. 다음은 Keras와 Pytorch의 기억에 남는 최근의 유용한 비교입니다.

Keras와 같은 툴에 익숙해지면 SciKit Learn의 단순한 오퍼링보다 툴을 사용하는 것이 더 빠릅니다.


나는 당신이 PyTorch에 대해 묻지 않았다는 것을 알고 있지만 CS231n의 최초 제작자 중 한 명인 Andrej Karpathy는 이것이 최고의 프레임 워크라고 말합니다 ( source 1 , source 2 ).


Pytorch에 대해 이야기하는 동안 : 가변 길이의 반복 네트워크와 관련하여 다른 프레임 워크보다 훨씬 뛰어납니다
Evpok

@Evpok-Tensorflow는 이제 tf.eagerPyTorch와 비슷한 API를 사용하여 동적 네트워크를 지원한다고 언급해야합니다 .
n1k31t4
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.