ความเข้ากันได้ของรุ่นสำหรับ TF1/TF2

รูปแบบโมเดล 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)
หรือ hub.KerasLayer
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)
หรือ hub.KerasLayer
m = hub.KerasLayer(handle)
outputs = m(inputs)
รองรับอย่างเต็มที่ ( คู่มือการโหลด TF2 SavedModel ฉบับสมบูรณ์ ) ใช้ hub.load อย่างใดอย่างหนึ่ง
m = hub.load(handle)
outputs = m(inputs)
หรือ hub.KerasLayer
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)
หรือฮับ KerasLayer:
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