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
-
การเปิดใช้งานขั้นกลางเหล่านี้สามารถทำได้โดยการสืบค้นโครงสร้างข้อมูลกราฟ
-
ฟีเจอร์เหล่านี้ใช้สร้างโมเดลการแยกฟีเจอร์ใหม่ที่คืนค่าของการเปิดใช้งานเลเยอร์ระดับกลางได้