หากฉันบันทึกแบบจำลองของฉันโดยใช้tensorflow.saved_model.save
ฟังก์ชันในรูปแบบ SavedModel ฉันจะดึง Tensorflow Ops ที่ใช้ในรุ่นนี้ได้อย่างไร เนื่องจากโมเดลสามารถกู้คืนการดำเนินการเหล่านี้ถูกเก็บไว้ในกราฟฉันเดาว่าอยู่ในsaved_model.pb
ไฟล์ ถ้าฉันโหลด protobuf นี้ (ไม่ใช่โมเดลทั้งหมด) ส่วนไลบรารีของ protobuf จะแสดงรายการเหล่านี้ แต่นี่ยังไม่ได้บันทึกและติดแท็กเป็นคุณลักษณะทดลองสำหรับตอนนี้ โมเดลที่สร้างใน Tensorflow 1.x จะไม่มีส่วนนี้
ดังนั้นวิธีที่รวดเร็วและเชื่อถือได้ในการดึงรายการการดำเนินการที่ใช้แล้ว (Like MatchingFiles
หรือWriteFile
) จากแบบจำลองในรูปแบบ SavedModel คืออะไร
ตอนนี้ฉันสามารถหยุดสิ่งทั้งปวงtensorflowjs-converter
ได้ ขณะที่พวกเขายังตรวจสอบการดำเนินงานที่รองรับ ในปัจจุบันนี้ไม่ทำงานเมื่อ LSTM อยู่ในรูปแบบที่เห็นนี่ มีวิธีที่ดีกว่าในการทำเช่นนี้ใน Ops แน่นอนหรือไม่
ตัวอย่างแบบ:
class FileReader(tf.Module):
@tf.function(input_signature=[tf.TensorSpec(name='filename', shape=[None], dtype=tf.string)])
def read_disk(self, file_name):
input_scalar = tf.reshape(file_name, [])
output = tf.io.read_file(input_scalar)
return tf.stack([output], name='content')
file_reader = FileReader()
tf.saved_model.save(file_reader, 'file_reader')
คาดว่าจะส่งออก Ops ทั้งหมดที่มีในกรณีนี้อย่างน้อย:
ReadFile
ตามที่อธิบายไว้ที่นี่- ...
saved_model
ตัวแปรในตัวอย่างสุดท้ายของคุณหรือไม่ ผลลัพธ์ของtf.saved_model.load('/path/to/model')
หรือโหลด protobuf ของไฟล์ save_model.pb
saved_model.pb
มันคืออะไรtf.GraphDef
หรือSavedModel
ข้อความ protobuf? หากคุณมีtf.GraphDef
ที่เรียกว่าคุณจะได้รับรายชื่อของปฏิบัติการที่ใช้กับgd
หากคุณมีรูปแบบการโหลดที่คุณสามารถทำได้sorted(set(n.op for n in gd.node))
sorted(set(op.type for op in tf.get_default_graph().get_operations()))
ถ้าเป็นSavedModel
คุณสามารถได้รับtf.GraphDef
จากมัน (เช่นsaved_model.meta_graphs[0].graph_def
)