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

Python을 사용하여 계층 그래프에서 노드를 추출하고 재사용하는 데 Keras를 어떻게 사용할 수 있습니까?

<시간/>

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 위에 구축되었습니다. 다음은 Kera가 레이어 그래프에서 노드를 추출하고 재사용하는 데 사용되는 코드 스니펫입니다. -

예시

print("VGG19 model with pre-trained weights")
vgg19 = tf.keras.applications.VGG19()
features_list = [layer.output for layer in vgg19.layers]
feat_extraction_model = keras.Model(inputs=vgg19.input, outputs=features_list)

img = np.random.random((1, 224, 224, 3)).astype("float32")
print("Create feature-extraction model")
extracted_features = feat_extraction_model(img)

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

출력

VGG19 model with pre-trained weights
Downloading data from https://storage.googleapis.com/tensorflow/kerasapplications/vgg19/vgg19_weights_tf_dim_ordering_tf_kernels.h5
574717952/574710816 [==============================] - 6s 0us/step
Create feature-extraction model

설명

  • 레이어의 그래프는 정적 데이터 구조이므로 액세스할 수 있습니다.

  • 이것이 기능적 모델이 이미지로 플롯될 수 있는 이유입니다.

  • 중간 계층(노드)의 활성화도 액세스하여 재사용할 수 있습니다.

  • 이것은 특징 추출 목적에 매우 유용합니다.

  • ImageNet의 도움으로 가중치가 사전 훈련된 VGG19 모델을 사용할 것입니다.

  • 이러한 중간 활성화는 그래프 데이터 구조를 쿼리하여 얻을 수 있습니다.

  • 이러한 기능은 중간 레이어 활성화 값을 반환하는 새로운 기능 추출 모델을 만드는 데 사용할 수 있습니다.