Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Keras를 Embedding 레이어와 함께 사용하여 Python을 사용하여 레이어를 공유하려면 어떻게 해야 합니까?

<시간/>

Keras는 ONEIROS(개방형 신경 전자 지능형 로봇 운영 체제) 프로젝트에 대한 연구의 일부로 개발되었습니다. Keras는 Python으로 작성된 딥 러닝 API입니다. 기계 학습 문제를 해결하는 데 도움이 되는 생산적인 인터페이스가 있는 고급 API입니다. Tensorflow 프레임워크 위에서 실행됩니다. 빠른 실험을 돕기 위해 제작되었습니다. 머신 러닝 솔루션을 개발하고 캡슐화하는 데 필수적인 필수 추상화 및 빌딩 블록을 제공합니다.

확장성이 뛰어나며 플랫폼 간 기능이 함께 제공됩니다. 이는 Keras가 TPU 또는 GPU 클러스터에서 실행될 수 있음을 의미합니다. Keras 모델은 웹 브라우저나 휴대폰에서도 실행되도록 내보낼 수도 있습니다.

Keras는 이미 Tensorflow 패키지에 있습니다. 아래 코드 줄을 사용하여 액세스할 수 있습니다. -

import tensorflow
from tensorflow import keras

Keras 기능 API는 순차 API를 사용하여 생성된 모델에 비해 더 유연한 모델을 생성하는 데 도움이 됩니다. 기능적 API는 비선형 토폴로지가 있는 모델과 함께 작동할 수 있고 레이어를 공유하고 여러 입력 및 출력과 함께 작동할 수 있습니다. 딥 러닝 모델은 일반적으로 여러 계층을 포함하는 방향성 순환 그래프(DAG)입니다. 기능적 API는 레이어 그래프를 작성하는 데 도움이 됩니다.

Google Colaboratory를 사용하여 아래 코드를 실행하고 있습니다. Google Colab 또는 Colaboratory는 브라우저를 통해 Python 코드를 실행하는 데 도움이 되며 구성이 필요 없고 GPU(그래픽 처리 장치)에 대한 무료 액세스가 필요합니다. Colaboratory는 Jupyter Notebook 위에 구축되었습니다. 다음은 Python을 사용하여 레이어를 공유하기 위해 Embedding 레이어와 함께 사용되는 Keras를 구현하는 코드 스니펫입니다.

print("Embedding for 2000 unique words mapped to 128-dimensional vectors")
shared_embedding = layers.Embedding(2000, 128)
print("Variable-length integer sequence")
text_input_a = keras.Input(shape=(None,), dtype="int32")
print("Variable-length integer sequence")
text_input_b = keras.Input(shape=(None,), dtype="int32")
print("Reuse the same layers to encode both the inputs")
encoded_input_a = shared_embedding(text_input_a)
encoded_input_b = shared_embedding(text_input_b)

코드 크레딧 - https://www.tensorflow.org/guide/keras/functional

출력

Embedding for 2000 unique words mapped to 128-dimensional vectors
Variable-length integer sequence
Variable-length integer sequence
Reuse the same layers to encode both the inputs

설명

  • 기능적 API 모델은 공유 레이어를 사용합니다.

  • 이러한 공유 레이어는 동일한 모델에서 여러 번 재사용할 수 있는 인스턴스입니다.

  • 이 레이어는 그래프의 여러 경로에 해당하는 기능을 학습합니다.

  • 공유 레이어는 어휘가 유사한 텍스트의 서로 다른 두 부분에서 입력을 인코딩하는 데에도 사용됩니다.

  • 이러한 방식으로 다양한 입력 간에 정보를 공유할 수 있습니다.

  • 이 때문에 더 적은 양의 데이터로 모델을 훈련할 수 있습니다.

  • '임베딩' 레이어는 위의 코드에서 두 개의 다른 텍스트에서 공유됩니다.