यदि मैं tensorflow.saved_model.save
SavedModel प्रारूप में फ़ंक्शन का उपयोग करके अपने मॉडल को बचाता हूं , तो मैं कैसे पुनः प्राप्त कर सकता हूं कि बाद में इस मॉडल में Tensorflow Ops का उपयोग किया जाता है। जैसा कि मॉडल को पुनर्स्थापित किया जा सकता है, ये ऑपरेशन ग्राफ़ में संग्रहीत किए जाते हैं, मेरा अनुमान saved_model.pb
फ़ाइल में है। यदि मैं इस प्रोटोबुफ़ (संपूर्ण मॉडल नहीं) को लोड करता हूं, तो प्रोटोबॉफ़ का पुस्तकालय हिस्सा इनकी सूची बनाता है, लेकिन इसे अभी तक प्रायोगिक विशेषता के रूप में दस्तावेज और टैग नहीं किया गया है। Tensorflow 1.x में बनाए गए मॉडल में यह हिस्सा नहीं होगा।
तो SavedModel प्रारूप में एक मॉडल से उपयोग किए गए संचालन (जैसे MatchingFiles
या WriteFile
) की एक सूची को पुनः प्राप्त करने का एक तेज़ और विश्वसनीय तरीका क्या है ?
अभी मैं पूरी चीज को फ्रीज कर सकता हूं, जैसे tensorflowjs-converter
करता है। के रूप में वे भी समर्थित संचालन के लिए जाँच करें। यह वर्तमान में काम नहीं करता है जब एक LSTM मॉडल में है, यहां देखें । क्या ऐसा करने का एक बेहतर तरीका है, क्योंकि ऑप्स निश्चित रूप से वहां हैं?
एक उदाहरण मॉडल:
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')
कम से कम इस मामले में, सभी ऑप्स आउटपुट में अपेक्षित:
saved_model
आपके अंतिम उदाहरण में चर क्या है ? tf.saved_model.load('/path/to/model')
Save_model.pb फ़ाइल के प्रोटोबुफ़ को लोड या लोड करने का परिणाम ।
saved_model.pb
, क्या यह एक हैtf.GraphDef
, या एकSavedModel
प्रोटोबुफ़ संदेश है? यदि आपके पास एक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
)।