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

Python을 사용하여 정규화 계층을 구축하는 데 Tensorflow를 어떻게 사용할 수 있습니까?

<시간/>

Tensorflow는 먼저 클래스 이름을 Numpy 배열로 변환한 다음 tf.keras.layers.experimental.preprocessing 패키지에 있는 'Rescaling' 방법을 사용하여 정규화 계층을 생성하여 정규화 계층을 구축하는 데 사용할 수 있습니다.

더 읽어보기:TensorFlow란 무엇이며 Keras가 TensorFlow와 협력하여 신경망을 만드는 방법은 무엇입니까?

하나 이상의 레이어를 포함하는 신경망을 컨볼루션 레이어라고 합니다. Convolutional Neural Network를 사용하여 학습 모델을 구축할 수 있습니다.

이미지 분류를 위한 전이 학습 배후의 직관은 모델이 크고 일반적인 데이터 세트에서 훈련된 경우 이 모델을 사용하여 시각적 세계에 대한 일반 모델로 효과적으로 사용할 수 있다는 것입니다. 기능 맵을 학습했을 것이므로 사용자가 대규모 데이터 세트에서 대규모 모델을 학습하여 처음부터 시작할 필요가 없습니다.

TensorFlow Hub는 사전 훈련된 TensorFlow 모델이 포함된 저장소입니다. TensorFlow를 사용하여 학습 모델을 미세 조정할 수 있습니다.

TensorFlow Hub의 모델을 tf.keras와 함께 사용하고 TensorFlow Hub의 이미지 분류 모델을 사용하는 방법을 이해합니다. 이 작업이 완료되면 전이 학습을 수행하여 맞춤형 이미지 클래스에 대한 모델을 미세 조정할 수 있습니다. 이것은 사전 훈련된 분류기 모델을 사용하여 이미지를 찍고 그것이 무엇인지 예측함으로써 수행됩니다. 이것은 훈련 없이도 가능합니다.

Google Colaboratory를 사용하여 아래 코드를 실행하고 있습니다. Google Colab 또는 Colaboratory는 브라우저를 통해 Python 코드를 실행하는 데 도움이 되며 구성이 필요 없고 GPU(그래픽 처리 장치)에 대한 무료 액세스가 필요합니다. Colaboratory는 Jupyter Notebook을 기반으로 구축되었습니다.

예시

print("It contains 5 classes")
class_names = np.array(train_ds.class_names)
print(class_names)
print("A normalization layer is built")
normalization_layer = tf.keras.layers.experimental.preprocessing.Rescaling(1./255)
train_ds = train_ds.map(lambda x, y: (normalization_layer(x), y))

코드 크레딧 -https://www.tensorflow.org/tutorials/images/transfer_learning_with_hub

출력

It contains 5 classes
['daisy' 'dandelion' 'roses' 'sunflowers' 'tulips']
A normalization layer is built

설명

  • 이미지를 모델링하는 TFHub의 규칙에는 [0, 1] 범위의 float 입력이 필요합니다.

  • Rescaling 레이어를 사용하여 동일한 결과를 얻을 수 있습니다.

  • 버퍼링된 프리페치를 사용하여 I/O 차단 없이 디스크에서 데이터를 가져올 수 있습니다.