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

Keras จะใช้สร้างโมเดลที่มีการระบุรูปร่างอินพุตของโมเดลไว้ล่วงหน้าได้อย่างไร


Tensorflow คือเฟรมเวิร์กแมชชีนเลิร์นนิงที่ให้บริการโดย Google เป็นเฟรมเวิร์กโอเพนซอร์สที่ใช้ร่วมกับ Python เพื่อใช้อัลกอริทึม แอปพลิเคชันการเรียนรู้เชิงลึก และอื่นๆ อีกมากมาย ใช้ในการวิจัยและเพื่อการผลิต

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

มันทำงานบนเฟรมเวิร์ก Tensorflow มันถูกสร้างขึ้นเพื่อช่วยทดลองในลักษณะที่รวดเร็ว โดยนำเสนอสิ่งที่เป็นนามธรรมและการสร้างบล็อคที่จำเป็นต่อการพัฒนาและการห่อหุ้มโซลูชันแมชชีนเลิร์นนิง

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

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

import tensorflow
from tensorflow import keras

เรากำลังใช้ Google Colaboratory เพื่อเรียกใช้โค้ดด้านล่าง Google Colab หรือ Colaboratory ช่วยเรียกใช้โค้ด Python บนเบราว์เซอร์และไม่ต้องมีการกำหนดค่าใดๆ และเข้าถึง GPU ได้ฟรี (หน่วยประมวลผลกราฟิก) Colaboratory ถูกสร้างขึ้นบน Jupyter Notebook ต่อไปนี้เป็นข้อมูลโค้ด -

ตัวอย่าง

print("Three dense layers are being created")
layer = layers.Dense(3)
print("The weights associated with the layers are")
print(layer.weights)

print("The created layers is called on test data")
x = tf.ones((2, 3))
y = layer(x)
print("Now, the weights are : ")
print(layer.weights)

เครดิตโค้ด – https://www.tensorflow.org/guide/keras/sequential_model

ผลลัพธ์

Three dense layers are being created
The weights associated with the layers are
[]
The created layers is called on test data
Now, the weights are :
[<tf.Variable 'dense_11/kernel:0' shape=(3, 3) dtype=float32, numpy=
array([[-0.9901273 , -0.70897937, -0.44804883],
   [ 0.6849613 , 0.5198808 , 0.48534775],
   [-0.07876515, -0.73648643, 0.44018626]], dtype=float32)>, <tf.Variable 'dense_11/bias:0'
shape=(3,) dtype=float32, numpy=array([0., 0., 0.], dtype=float32)>]

คำอธิบาย

  • เลเยอร์ทั้งหมดในโมเดล Keras จำเป็นต้องทราบรูปร่างของอินพุตเพื่อสร้างน้ำหนักที่เหมาะสมที่สุด

  • เริ่มแรก เมื่อมีการสร้างเลเยอร์ เลเยอร์นั้นไม่มีน้ำหนักที่เกี่ยวข้อง

  • ดังนั้นจึงสร้างน้ำหนักเมื่อมีการเรียกใช้อินพุตเป็นครั้งแรก

  • เนื่องจากน้ำหนักขึ้นอยู่กับรูปร่างของอินพุต

  • เลเยอร์จะถูกสร้างขึ้นตามลำดับ

  • สิ่งนี้เรียกว่าข้อมูลการทดสอบ

  • น้ำหนักที่เกี่ยวข้องกับรุ่นใหม่นี้จะแสดงบนคอนโซล