TensorFlow가 keras에 더 제공하는 것은 무엇입니까?


16

나는 keras가 TensorFlow에 대한 고급 인터페이스 역할을한다는 것을 알고 있습니다.

그러나 keras가 자체적으로 많은 기능 (데이터 입력, 모델 작성, 교육, 평가)을 수행 할 수있는 것 같습니다.

또한 TensorFlow의 기능 중 일부는 keras로 직접 포팅 될 수 있습니다 (예 : keras에서 tf 메트릭 또는 손실 함수를 사용할 수 있음).

제 질문은 케 라스에서 재현 할 수없는 TensorFlow가 무엇을 제공합니까?

답변:


15

딥 러닝 프레임 워크는 2 가지 추상화 수준에서 작동합니다.

  • 낮은 수준 : Tensorflow, MXNet, Theano 및 PyTorch와 같은 프레임 워크가있는 곳입니다. 이것은 일반화 된 행렬-매트릭스 곱셈과 같은 수학적 연산과 컨볼 루션 연산과 같은 신경망 프리미티브가 구현되는 수준입니다.
  • 상위 레벨 : Keras와 같은 프레임 워크가있는 곳입니다. 이 레벨에서 하위 레벨 프리미티브는 레이어 및 모델과 같은 신경망 추상화를 구현하는 데 사용됩니다. 일반적으로이 수준에서는 모델 저장 및 모델 교육과 같은 다른 유용한 API도 구현됩니다.

Keras와 TensorFlow는 서로 다른 추상화 레벨에 있으므로 비교할 수 없습니다. 또한이 기회를 통해 Keras 사용 경험을 공유하고 싶습니다.

  • Keras가 기본적인 딥 러닝 작업에만 유용하다는 데 동의하지 않습니다. Keras는 아름답게 작성된 API입니다. API의 기능적 특성은보다 이국적인 애플리케이션을 위해 완전히 도움이됩니다. Keras는 하위 프레임 워크에 대한 액세스를 차단하지 않습니다.
  • Keras는 훨씬 더 읽기 쉽고 간결한 코드를 생성합니다.
  • Python 생성기를 사용한 Keras 모델 직렬화 / 직렬화 API, 콜백 및 데이터 스트리밍은 매우 성숙합니다.
  • Keras는 TensorFlow에 대한 공식적인 고급 추상화로 선언되었습니다.

9

keras에서 TensorFlow를 백엔드로 사용하는 경우 거의 동일한 기능을 공유합니다. 를 통해 keras.backend사용자 액세스 TensorFlow 기능을 통해 동안 tf.keras당신은 TensorFlow을 통해 전체 API 'keras에 액세스 할 수 있습니다.

이 경우 케라를 고수하는 것이 좋습니다. 무언가가 누락 된 경우 (예 : 메트릭 또는 손실 함수) TensorFlow를 통해 가져올 수 있습니다.


5

Keras는 모든 기능을 포함하지만 기본적으로 CPU에서만 실행됩니다. TensorFlow 또는 CNTK (개인적으로 선호하는)와 같은 백엔드를 연결하면 일부 ML 워크로드, 특히 DL 워크로드를 크게 가속화 할 수있는 GPU의 성능을 활용할 수 있습니다. 별도의 GPU가 없으면 이점이 최소화됩니다.

실제로 대부분의 경우 백엔드를 설정하고 잊어 버릴 수 있으며 Keras 내에서 완전히 작업하고 백엔드를 다른 것으로 교체하고 성능을 비교할 수도 있습니다. 따라서 하위 레벨에서 직접 코딩하지 않는 한 TF의 특성을 배울 필요가 없습니다.


5

TensorFlow가 일반적으로 Keras보다 더 낮은 수준의 라이브러리라는 점을 감안할 때 이것이 유연성과 성능 향상을 제공한다는 것을 알 수 있습니다 (상대적으로는 적지 만 코드 작성 방법에 따라 다름). 새로운 유형의 신경망을 연구하거나 개발하고 있다면 TensorFlow에 대한 지식이 매우 유용 할 것입니다. 그 외에는 TensorFlow의 작동 방식을 이해하면 백엔드로 사용하는 경우 여전히 도움이 될 수 있지만 Keras를 사용하는 것이 좋습니다.

그러나 얼마 전 Keras와 TensorFlow가 더욱 통합되어 삶을 훨씬 쉽게 만들 수 있다고 읽었습니다.

분명히 이것은 내 개인적인 견해 일 뿐이므로, 나는 당신이 당신의 자신의 독서를 할 수 있도록 여분의 기사를 지적하고 싶습니다. Kaggle에 대한이 토론 에서는 인수와 사용시기에 대한 개요를 제공합니다. 이 주제에 대한 중간 게시물 .


5

모든 초보자에게는이 쿼리가 있습니다. Keras는 데이터 입력, 모델 생성, 교육, 평가와 같은 기본 기능을 더 적은 수의 코드로 해결하는 것으로 보입니다.

그러나 ML 모델을 처음부터 개발하기 시작하면 NN에 많은 수학을 프로그래밍 할 수 있으며 tensorflow 라이브러리는 많은 기능과 제어 기능을 제공하여 이러한 개념을 실용적으로 만듭니다. 학습의 수학적 측면은 tf를 사용하여 만든 NN을 사용하여 쉽게 시각화하고 만들 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.