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

Tensorflow สามารถใช้สร้างตัวแยกคุณลักษณะโดยใช้ Python ได้อย่างไร


สามารถใช้ Tensorflow เพื่อสร้างตัวแยกคุณลักษณะได้โดยใช้การดึงข้อมูลล่วงหน้าแบบบัฟเฟอร์ ทำได้โดยการตั้งค่า trainable=False

อ่านเพิ่มเติม: TensorFlow คืออะไรและ Keras ทำงานร่วมกับ TensorFlow เพื่อสร้าง Neural Networks อย่างไร

โครงข่ายประสาทเทียมที่มีอย่างน้อยหนึ่งชั้นเรียกว่าชั้น Convolutional เราสามารถใช้ Convolutional Neural Network เพื่อสร้างแบบจำลองการเรียนรู้

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

TensorFlow Hub เป็นพื้นที่เก็บข้อมูลที่มีโมเดล TensorFlow ที่ผ่านการฝึกอบรมล่วงหน้า สามารถใช้ TensorFlow เพื่อปรับแต่งโมเดลการเรียนรู้ได้

เราจะเข้าใจวิธีใช้โมเดลจาก TensorFlow Hub กับ tf.keras ใช้โมเดลการจำแนกรูปภาพจาก TensorFlow Hub เมื่อเสร็จแล้ว การเรียนรู้การถ่ายโอนสามารถทำได้เพื่อปรับแต่งโมเดลสำหรับคลาสรูปภาพที่กำหนดเอง ซึ่งทำได้โดยใช้แบบจำลองลักษณนามที่ฝึกไว้ล่วงหน้าเพื่อถ่ายภาพและคาดการณ์ว่ามันคืออะไร สามารถทำได้โดยไม่ต้องมีการฝึกอบรมใดๆ

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

ตัวอย่าง

AUTOTUNE = tf.data.AUTOTUNE
train_ds = train_ds.cache().prefetch(buffer_size=AUTOTUNE)
print("The dimensions of data")
for image_batch, labels_batch in train_ds:
print(image_batch.shape)
print(labels_batch.shape)
break

เครดิตโค้ด −https://www.tensorflow.org/tutorials/images/transfer_learning_with_hub

ผลลัพธ์

The dimensions of data
(32, 224, 224, 3)
(32,)

คำอธิบาย

  • TFHub แจกจ่ายโมเดลโดยไม่ต้องใช้เลเยอร์การจัดหมวดหมู่ระดับบนสุด
  • ใช้สำหรับถ่ายทอดการเรียนรู้
  • สามารถใช้โมเดลเวกเตอร์คุณลักษณะรูปภาพที่เข้ากันได้จาก tfhub.dev
  • ตัวแยกคุณลักษณะสามารถสร้างขึ้นได้ด้วยความช่วยเหลือของ trainerable=False
  • สามารถใช้เพื่อตรึงตัวแปรในเลเยอร์ตัวแยกคุณลักษณะได้
  • ดำเนินการเพื่อให้การฝึกอบรมแก้ไขเฉพาะเลเยอร์ตัวแยกประเภทใหม่เท่านั้น
  • จะส่งคืนเวกเตอร์ที่มีความยาว 1280 สำหรับแต่ละภาพ