จากสิ่งที่ฉันรวบรวมมาจนถึงตอนนี้มีหลายวิธีในการทิ้งกราฟ TensorFlow ลงในไฟล์แล้วโหลดลงในโปรแกรมอื่น แต่ฉันยังไม่พบตัวอย่าง / ข้อมูลที่ชัดเจนเกี่ยวกับวิธีการทำงาน สิ่งที่ฉันรู้อยู่แล้วคือ:
- บันทึกตัวแปรของโมเดลลงในไฟล์จุดตรวจ (.ckpt) โดยใช้ a
tf.train.Saver()
และเรียกคืนในภายหลัง (ที่มา ) - บันทึกโมเดลลงในไฟล์. pb และโหลดกลับมาใช้
tf.train.write_graph()
และtf.import_graph_def()
(ที่มา ) - โหลดแบบจำลองจากไฟล์. pb ฝึกใหม่และถ่ายโอนข้อมูลลงในไฟล์. pb ใหม่โดยใช้ Bazel ( ซอร์ส )
- ตรึงกราฟเพื่อบันทึกกราฟและน้ำหนักร่วมกัน (ที่มา )
- ใช้
as_graph_def()
เพื่อบันทึกแบบจำลองและสำหรับน้ำหนัก / ตัวแปรให้จับคู่เป็นค่าคงที่ (ที่มา )
อย่างไรก็ตามฉันไม่สามารถไขข้อข้องใจเกี่ยวกับวิธีการต่างๆเหล่านี้ได้:
- เกี่ยวกับไฟล์จุดตรวจพวกเขาบันทึกเฉพาะน้ำหนักที่ฝึกแล้วของแบบจำลองหรือไม่? สามารถโหลดไฟล์จุดตรวจลงในโปรแกรมใหม่และใช้ในการรันโมเดลได้หรือไม่หรือใช้เป็นวิธีในการบันทึกน้ำหนักในโมเดลในช่วงเวลา / ขั้นตอนที่กำหนด
- เกี่ยวกับ
tf.train.write_graph()
น้ำหนัก / ตัวแปรได้รับการบันทึกด้วยหรือไม่? - เกี่ยวกับ Bazel สามารถบันทึกลงใน / โหลดจากไฟล์. pb เพื่อฝึกอบรมใหม่ได้หรือไม่? มีคำสั่ง Bazel ง่ายๆเพียงเพื่อถ่ายโอนกราฟลงใน. pb หรือไม่?
- เกี่ยวกับการแช่แข็งสามารถโหลดกราฟแช่แข็งโดยใช้ได้
tf.import_graph_def()
หรือไม่? - การสาธิต Android สำหรับ TensorFlow โหลดในโมเดล Inception ของ Google จากไฟล์. pb ถ้าฉันต้องการแทนที่ไฟล์. pb ของตัวเองฉันจะทำอย่างไร ฉันจะต้องเปลี่ยนรหัส / วิธีการใด ๆ หรือไม่?
- โดยทั่วไปแล้ววิธีการทั้งหมดนี้แตกต่างกันอย่างไร? หรือกว้างกว่านั้นคือ
as_graph_def()
/.ckpt/.pb ต่างกันอย่างไร
ในระยะสั้นสิ่งที่ฉันกำลังมองหาคือวิธีการบันทึกทั้งกราฟ (เช่นการดำเนินการต่างๆและอื่น ๆ ) และน้ำหนัก / ตัวแปรลงในไฟล์ซึ่งสามารถใช้เพื่อโหลดกราฟและน้ำหนักลงในโปรแกรมอื่นได้ สำหรับการใช้งาน (ไม่จำเป็นต้องดำเนินการต่อ / ฝึกอบรมใหม่)
เอกสารเกี่ยวกับหัวข้อนี้ไม่ตรงไปตรงมามากนักดังนั้นคำตอบ / ข้อมูลใด ๆ จะได้รับการชื่นชมอย่างมาก