Keras 시작하기
- 원문 : Getting started with Keras
- 학습 자료들
- 엔지니어를 위한 케라스 소개 : Introduction to Keras for engineers
- 케라스와 그 기능에 관한 문서들 : Keras 3 launch announcement
- 케라스 API의 깊이 있는 상세 내용을 다루는 개발자 가이드 : Developer guides
- 다양한 유스케이스에서 케라스를 사용하는 예제 : Keras code examples
Keras 설치
- 파이썬 패키지 저장소인 PyPI로부터 케라스를 설치할 수 있다. (참고-PyPI : Python Package Index)
pip install --upgrade keras
참고) 파이썬 패키지 인스톨러인 pip는 설치 명령어 install
의 업그레이드 옵션(--upgrade
)이 없다면, 기존에 설치된 패키지가 존재하는 경우 새롭게 설치하지 않고 그대로 둔다. 따라서 최신 버전의 설치를 위해서는 업그레이드 옵션을 명시하는 편이 좋다.
- 설치된 케라스의 버전은 (다른 파이썬 패키지의 경우처럼) 확인할 수 있다.
import keras
print(keras.__version__)
- Keras 3를 사용하기 위해서는 백엔드로 사용한 딥러닝 프레임워크를 설치할 필요가 있다.
- JAX 설치 : Installing JAX
- PyTorch 설치 : Installing PyTorch
- TensorFlow 설치 : Installing TensorFlow
참고) 이 문서에서는 TensorFlow 2.15 버전을 설치할 경우, Keras 3를 재설치할 필요가 있다고 밝힌다. 이는 2.15버전의 텐서플로 설치 시에는 2.15버전의 케라스를 설치하기 때문인데, 이후 버전의 텐서플로부터는 불필요하다고 한다.
- KerasCV 와 KerasNLP 패키지도 같은 방식으로 설치할 수 있다.
pip install --upgrade keras-cv
pip install --upgrade keras-nlp
pip install --upgrade keras
참고) KerasCV는 컴퓨터 비전을 위한 모듈들이고, KerasNLP는 자연어처리(NLP)를 위한 라이브러리다.
백엔드 설정
- 백엔드, 즉 케라스가 실제 실행되는 딥러닝 프레임워크 지정을 위해서는
- (1) 환경 변수
KERAS_BACKEND
를 설정하거나(export
명령어) - (2) 케라스의 환경설정 파일인
~/.keras/keras.json
에서 지정할 수 있다.
- (1) 환경 변수
- 가능한 백엔드 옵션은
"jax"
,"tensorflow"
,"torch"
가 있다.
export KERAS_BACKEND="jax"
- 아래와 같은 방식으로도 설정할 수 있다.
import os
os.environ["KERAS_BACKEND"] = "jax"
import keras
참고) 백엔드 설정은 반드시 케라스 패키지를 불러오기 전에 설정되어야 한다.
GPU 의존성(dependencies)
- Colab이나 Kaggle Notebook을 사용할 때에는, 적절한 CUDA 버전과 함께 GPU (런타임 사용) 설정이 이뤄져야 한다.
- 일반적으로 코랩 또는 캐글 노트북에서 새로운 버전의 CUDA를 설치하는 것은 불가능하다.
- 따라서 이미 설치된 NVIDIA 드라이버에 의존하며, 드라이버를 업데이트를 할 방법이 없다.
- 만약에 어떠한 백엔드 프레임워크도 GPU를 사용할 수 있는 통합환경을 설치하려고 할 경우에, 이 문서에서는 코랩에 설치된 버전을 추천한다고 한다.
- 이는 다음의 Check framework versions 노트북을 통해 확인할 수 있다.
- 위 문서 생성 당시의 코랩 설치 버전은 각각 CUDA 11.8, TensorFlow 2.14.0, jax 0.14.20, torch 2.1.0+cu118 이다.
- 이 포스트를 쓰는 2024년 9월 당시에는 CUDA 12.2, TensorFlow 2.17.0, jax 0.14.26, torch 2.4.0+cu121이다.
- 한편, Keras의 깃허브 저장소에는 케라스 컨트리뷰터로서 케라스 테스트를 진행할 때 추천하는 설정 파일들이 있다.
- requirements-jax-cuda.txt, requirements-tensorflow-cuda.txt, requirements-torch-cuda.txt
- 이들은 모든 백엔드 프레임워크를 설치하지만, 한 번에 하나의 백엔드에만 GPU 접근을 허락한다.
- 이를 통해 백엔드 간에 일어날 수 있는 잠재적인 패키지 충돌을 방지한다.
- 참고) 파일들을 살펴보면, 주된 백엔드를 제외한 나머지 백엔드는 CPU에서 설치되는 버전으로 설치되는 것같다.
- CUDA 버전 불일치를 방지하기 위해서, 파이썬 가상환경을 새로 만들어 설치하는 것이 추천된다. 아나콘다 또는 미니콘다를 쓰는 Conda 환경에서 jax GPU 환경 예제는 다음과 같다.
conda create -y -n keras-jax python=3.10
conda activate keras-jax
pip install -r requirements-jax-cuda.txt
pip install --upgrade keras
참고) 이는 파이썬 3.10을 사용하는 keras-jax라는 이름의 가상환경을 생성하여, jax 프레임워크를 GPU 백엔드로 설정하는 환경설정을 한다.
TensorFlow + Keras 2 호환성
- 기존의 TensorFlow 2.0 부터 TensorFlow 2.15 버전까지는 pip를 통한 텐서플로 설치시 동일한 버전의 Keras 2가 설치되었다.
- 예)
pip install tensorflow==2.14.0
은keras==2.14.0
을 설치한다. - 설치된 케라스2도
import keras
또는from tensorflow import keras
로 불러올 수 있다.
- 예)
- 반면, (위에 설명되었듯이) 2.16 이후의 텐서플로 설치 시에는 Keras 3이 설치된다.
- 즉, 이 경우
from tensorflow import keras
즉,tf.keras
는 케라스 3 버전 이다.
- 즉, 이 경우
- 그러나 여전히 Keras 2 버전도 레거시로서 정기적으로 배포되고 있고, PyPI에서는
tf_keras
또는tf-keras
라는 패키지명으로 사용가능하다.- 레거시 케라스 2의 설치는
pip install tf_keras
로 가능하며, 사용 시에는import tf_keras as keras
같은 방식으로 가능하다.
- 레거시 케라스 2의 설치는
- 그런데, 만약 텐서플로 2.16 이후의 버전에서도
tf.keras
가 Keras 2를 가리키게 하고 싶다면- (1)
tf_keras
패키지를 설치한 뒤에 - (2) 환경변수
TF_USE_LEGACY_KERAS=1
을 설정한다.
- (1)
- 참고로 환경변수를 설정하는 방법은 아래와 같이 다양한 방법이 있다.
- (1) 쉘에서 명령어
export TF_USE_LEGACY_KERAS=1
를 통해 파이썬 인터프리터가 실행되기 전에 설정한다. - (2) 쉘 설정 파일(예-
.bashrc
,.zshrc
등)에 를 추가해두면, 쉘을 새로 시작할 때마다 환경변수가 설정된다. - (3) 파이썬 스크립트에서
os.environ["TF_USE_LEGACY_KERAS"]=1
를 포함시킨다.
단, 이는 반드시import tensorflow
선언 전에 있어야 한다.
- (1) 쉘에서 명령어
'A.I. > TensorFlow' 카테고리의 다른 글
Keras 3 문서) Keras FAQ (1) - General question (1) | 2024.09.23 |
---|---|
Keras 3 문서) The Keras ecosystem (0) | 2024.09.22 |
Keras 3 문서) Keras 3 benchmarks (2) | 2024.09.21 |
Keras 3 문서) Introduction to Keras for engineers (0) | 2024.09.19 |
Keras 3 문서) About Keras 3 (0) | 2024.09.13 |
댓글