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

วิธีใช้ Keras โหลด weights จาก checkpoint และประเมินโมเดลใหม่ด้วย Python


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

แพ็กเกจ 'tensorflow' สามารถติดตั้งบน Windows ได้ด้วยคำสั่งด้านล่าง:

pip install tensorflow

Tensor คือโครงสร้างข้อมูลที่ใช้ใน TensorFlow ช่วยเชื่อมต่อขอบในแผนภาพกระแสข้อมูล (Data flow graph) Tensor คืออาร์เรย์หลายมิติหรือรายการ สามารถระบุได้ด้วย 3 แอตทริบิวต์หลัก:

  • Rank  - บอกเกี่ยวกับมิติของ tensor เข้าใจได้เป็น order ของ tensor หรือจำนวนมิติใน tensor ที่กำหนด

  • Type  - บอกเกี่ยวกับชนิดข้อมูลที่เกี่ยวข้องกับองค์ประกอบของ Tensor อาจเป็น 1 มิติ, 2 มิติ หรือ n มิติ

  • Shape  - คือจำนวนแถวและคอลัมน์รวมกัน

Keras ในภาษากรีกแปลว่า 'horn' Keras ถูกพัฒนาขึ้นเป็นส่วนหนึ่งของโครงการวิจัย ONEIROS (Open ended Neuro-Electronic Intelligent Robot Operating System) Keras เป็น API การเรียนรู้เชิงลึก ที่เขียนด้วย Python เป็น API ระดับสูงที่มีอินเทอร์เฟซที่มีประสิทธิภาพช่วยแก้ปัญหาการเรียนรู้ของเครื่อง Keras รันบน TensorFlow framework ถูกสร้างขึ้นเพื่อช่วยทดลองได้อย่างรวดเร็ว ให้ abstraction และ building blocks ที่จำเป็นในการพัฒนาและห่อหุ้มโซลูชันการเรียนรู้ของเครื่อง

Keras อยู่ภายในแพ็กเกจ TensorFlow แล้ว สามารถเข้าถึงได้ด้วยโค้ดด้านล่าง:

import tensorflow
from tensorflow import keras

เราใช้ Google Colaboratory เพื่อรันโค้ดด้านล่าง Google Colab ช่วยให้รันโค้ด Python ผ่านเบราว์เซอร์ ไม่ต้องตั้งค่า และเข้าถึง GPU ฟรี Colaboratory สร้างขึ้นบน Jupyter Notebook โค้ดมีดังนี้:

ตัวอย่าง

print("The weights are loaded")
model.load_weights(checkpoint_path)
print("The model is being re-evaluated")
loss, acc = model.evaluate(test_images, test_labels, verbose=2)
print("This is the restored model, with accuracy: {:5.3f}%".format(100 * acc))

Code credit - https://www.tensorflow.org/tutorials/keras/save_and_load

ผลลัพธ์

The Weights are loaded
The model is beign re-evaluated
32/32 - 0 - loss:0.4066 - sparse_categorical_accuracy:0.8740
This is the restored model, with accuracy:87.400%

คำอธิบาย

  • โมเดลใหม่นี้ถูกใช้เพื่อ map weights เข้าไป

  • เมธอด 'evaluate' ถูกใช้เพื่อตรวจสอบว่าโมเดลทำงานได้ดีแค่ไหนกับข้อมูลใหม่

  • นอกจากนี้ loss เมื่อโมเดลกำลังฝึกและ accuracy ของโมเดลก็ถูกกำหนด

  • Loss และ accuracy ถูกพิมพ์บนคอนโซล