Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Keras สามารถใช้เพื่อแยกและนำโหนดมาใช้ซ้ำในกราฟของเลเยอร์โดยใช้ Python ได้อย่างไร


Keras ได้รับการพัฒนาโดยเป็นส่วนหนึ่งของการวิจัยสำหรับโครงการ ONEIROS (ระบบปฏิบัติการหุ่นยนต์อัจฉริยะ Neuro-Electronic ปลายเปิด) Keras เป็น API การเรียนรู้เชิงลึกซึ่งเขียนด้วยภาษา Python เป็น API ระดับสูงที่มีอินเทอร์เฟซที่มีประสิทธิภาพซึ่งช่วยแก้ปัญหาการเรียนรู้ของเครื่อง มันทำงานบนเฟรมเวิร์ก Tensorflow มันถูกสร้างขึ้นเพื่อช่วยทดลองในลักษณะที่รวดเร็ว โดยนำเสนอสิ่งที่เป็นนามธรรมและการสร้างบล็อคที่จำเป็นต่อการพัฒนาและการห่อหุ้มโซลูชันแมชชีนเลิร์นนิง

สามารถปรับขนาดได้สูงและมาพร้อมกับความสามารถข้ามแพลตฟอร์ม ซึ่งหมายความว่า Keras จะทำงานบน TPU หรือคลัสเตอร์ของ GPU ได้ นอกจากนี้ โมเดล Keras ยังสามารถส่งออกไปยังเว็บเบราว์เซอร์หรือโทรศัพท์มือถือได้อีกด้วย

Keras มีอยู่แล้วในแพ็คเกจ Tensorflow สามารถเข้าถึงได้โดยใช้รหัสบรรทัดด้านล่าง

import tensorflow
from tensorflow import keras

Keras functional API ช่วยสร้างโมเดลที่มีความยืดหยุ่นมากกว่าเมื่อเปรียบเทียบกับโมเดลที่สร้างโดยใช้ Sequential API API ที่ใช้งานได้สามารถทำงานกับโมเดลที่มีโทโพโลยีที่ไม่ใช่เชิงเส้น สามารถแชร์เลเยอร์และทำงานกับอินพุตและเอาต์พุตได้หลายรายการ โมเดลการเรียนรู้เชิงลึกมักจะเป็นกราฟ acyclic แบบกำกับทิศทาง (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

คำอธิบาย

  • เนื่องจากกราฟของเลเยอร์เป็นโครงสร้างข้อมูลแบบคงที่จึงสามารถเข้าถึงได้

  • นี่คือเหตุผลว่าทำไมโมเดลเชิงฟังก์ชันจึงสามารถลงจุดเป็นภาพได้

  • การเปิดใช้งานของเลเยอร์กลาง (โหนด) ยังสามารถเข้าถึงและนำกลับมาใช้ใหม่ได้อีกด้วย

  • ซึ่งมีประโยชน์มากสำหรับการดึงข้อมูลคุณลักษณะ

  • เราจะใช้โมเดล VGG19 ซึ่งมีการชั่งน้ำหนักล่วงหน้าด้วยความช่วยเหลือของ ImageNet

  • การเปิดใช้งานขั้นกลางเหล่านี้สามารถทำได้โดยการสืบค้นโครงสร้างข้อมูลกราฟ

  • ฟีเจอร์เหล่านี้ใช้สร้างโมเดลการแยกฟีเจอร์ใหม่ที่คืนค่าของการเปิดใช้งานเลเยอร์ระดับกลางได้