รูปแบบโมเดล TF Hub
TF Hub นำเสนอชิ้นส่วนโมเดลที่ใช้ซ้ำได้ซึ่งสามารถโหลดกลับ สร้างต่อ และอาจฝึกใหม่ในโปรแกรม TensorFlow สิ่งเหล่านี้มาในสองรูปแบบที่แตกต่างกัน:
- รูปแบบ TF1 Hub ที่กำหนดเอง การใช้งานตามวัตถุประสงค์หลักคือใน TF1 (หรือโหมดความเข้ากันได้ของ TF1 ใน TF2) ผ่านทาง ฮับ โมดูล API รายละเอียดความเข้ากันได้แบบเต็ม ด้านล่าง
- รูปแบบ TF2 SavedModel ดั้งเดิม จุดประสงค์การใช้งานหลักคือใน TF2 ผ่าน hub.load และ hub.KerasLayer API รายละเอียดความเข้ากันได้แบบเต็ม ด้านล่าง
สามารถดูรูปแบบโมเดลได้ในหน้าโมเดลบน tfhub.dev การโหลด/การอนุมาน โมเดล การปรับแต่งอย่างละเอียด หรือ การสร้างโมเดล อาจไม่รองรับใน TF1/2 ทั้งนี้ขึ้นอยู่กับรูปแบบของโมเดล
ความเข้ากันได้ของรูปแบบ TF1 Hub
การดำเนินการ | โหมดรองรับ TF1/ TF1 ใน TF2 [1] | ทีเอฟ2 |
กำลังโหลด/อนุมาน | รองรับอย่างเต็มที่ ( คู่มือการโหลดรูปแบบ TF1 Hub ฉบับสมบูรณ์ ) m = hub.Module(handle)
outputs = m(inputs) | ขอแนะนำให้ใช้ hub.load อย่างใดอย่างหนึ่งm = hub.load(handle)
outputs = m.signatures["sig"](inputs) m = hub.KerasLayer(handle, signature="sig")
outputs = m(inputs) |
การปรับแต่งแบบละเอียด | รองรับอย่างเต็มที่ ( คู่มือการปรับแต่งรูปแบบ TF1 Hub ที่สมบูรณ์ ) m = hub.Module(handle,
trainable=True,
tags=["train"]*is_training)
outputs = m(inputs) หมายเหตุ: โมดูลที่ไม่ต้องการกราฟรถไฟแยกต่างหากจะไม่มีแท็กรถไฟ | ไม่รองรับ |
การสร้าง | รองรับอย่างเต็มที่ (ดู คู่มือการสร้างรูปแบบ TF1 Hub ฉบับสมบูรณ์ ) หมายเหตุ: รูปแบบ TF1 Hub มุ่งเน้นไปที่ TF1 และรองรับเพียงบางส่วนใน TF2 เท่านั้น พิจารณาสร้าง TF2 SavedModel | ไม่รองรับ |
ความเข้ากันได้ของ TF2 SavedModel
ไม่รองรับก่อน TF1.15
การดำเนินการ | โหมดรองรับ TF1.15/ TF1 ใน TF2 [1] | ทีเอฟ2 |
กำลังโหลด/อนุมาน | ใช้ hub.load อย่างใดอย่างหนึ่งm = hub.load(handle)
outputs = m(inputs) m = hub.KerasLayer(handle)
outputs = m(inputs) | รองรับอย่างเต็มที่ ( คู่มือการโหลด TF2 SavedModel ฉบับสมบูรณ์ ) ใช้ hub.load อย่างใดอย่างหนึ่งm = hub.load(handle)
outputs = m(inputs) m = hub.KerasLayer(handle)
outputs = m(inputs) |
การปรับแต่งแบบละเอียด | รองรับฮับ KerasLayer ที่ใช้ใน tf.keras.Model เมื่อฝึกฝนกับ Model.fit() หรือฝึกฝนใน Estimator ซึ่ง model_fn ล้อม Model ตาม คำแนะนำ model_fn ที่กำหนดเอง หมายเหตุ: hub.KerasLayer ไม่ได้ เติมคอลเลกชันกราฟเหมือนที่ tf.compat.v1.layers หรือ hub.Module API แบบเก่าทำ | รองรับอย่างเต็มที่ ( คู่มือการปรับแต่ง TF2 SavedModel ฉบับสมบูรณ์ ) ใช้ hub.load อย่างใดอย่างหนึ่ง:m = hub.load(handle)
outputs = m(inputs, training=is_training) m = hub.KerasLayer(handle, trainable=True)
outputs = m(inputs) |
การสร้าง | TF2 API tf.saved_model.save() สามารถเรียกได้จากภายในโหมดที่เข้ากันได้ | รองรับอย่างเต็มที่ (ดู คู่มือการสร้าง TF2 SavedModel ฉบับสมบูรณ์ ) |
[1] "โหมดความเข้ากันได้ของ TF1 ใน TF2" หมายถึงผลรวมของการนำเข้า TF2 ที่มี import tensorflow.compat.v1 as tf
และการทำงาน tf.disable_v2_behavior()
ตามที่อธิบายไว้ใน คู่มือ TensorFlow Migration