TensorFlow मॉडल विश्लेषण (TFMA) एक मॉडल के मूल्यांकन ग्राफ़ को EvalSavedModel नामक एक विशेष SavedModel में निर्यात कर सकता है। (ध्यान दें कि मूल्यांकन ग्राफ़ का उपयोग किया जाता है, न कि प्रशिक्षण या अनुमान के लिए ग्राफ़ का।) EvalSavedModel में अतिरिक्त जानकारी होती है जो टीएफएमए को बड़ी मात्रा में डेटा और उपयोगकर्ता-परिभाषित पर वितरित तरीके से मॉडल में परिभाषित समान मूल्यांकन मेट्रिक्स की गणना करने की अनुमति देती है। स्लाइस.
किसी मौजूदा मॉडल को संशोधित करें
TFMA के साथ मौजूदा मॉडल का उपयोग करने के लिए, पहले EvalSavedModel निर्यात करने के लिए मॉडल को संशोधित करें। यह tfma.export.export_eval_savedmodel पर कॉल जोड़कर किया जाता है और यह estimator.export_savedmodel के समान है। उदाहरण के लिए:
# Define, train and export your estimator as usual
estimator = tf.estimator.DNNClassifier(...)
estimator.train(...)
estimator.export_savedmodel(...)
# Also export the EvalSavedModel
tfma.export.export_eval_savedmodel(
estimator=estimator, export_dir_base=export_dir,
eval_input_receiver_fn=eval_input_receiver_fn)
eval_input_receiver_fn परिभाषित किया जाना चाहिए और यह estimator.export_savedmodel के लिए serving_input_receiver_fn के समान है। serving_input_receiver_fn की तरह, eval_input_receiver_fn फ़ंक्शन एक इनपुट प्लेसहोल्डर उदाहरण को परिभाषित करता है, उदाहरण से सुविधाओं को पार्स करता है, और पार्स की गई सुविधाओं को लौटाता है। यह लेबल को पार्स करता है और लौटाता है।
निम्नलिखित स्निपेट एक उदाहरण eval_input_receiver_fn परिभाषित करता है:
country = tf.feature_column.categorical_column_with_hash('country', 100)
language = tf.feature_column.categorical_column_with_hash('language', 100)
age = tf.feature_column.numeric_column('age')
label = tf.feature_column.numeric_column('label')
def eval_input_receiver_fn():
serialized_tf_example = tf.compat.v1.placeholder(
dtype=tf.string, shape=[None], name='input_example_placeholder')
# This *must* be a dictionary containing a single key 'examples', which
# points to the input placeholder.
receiver_tensors = {'examples': serialized_tf_example}
feature_spec = tf.feature_column.make_parse_example_spec(
[country, language, age, label])
features = tf.io.parse_example(serialized_tf_example, feature_spec)
return tfma.export.EvalInputReceiver(
features=features,
receiver_tensors=receiver_tensors,
labels=features['label'])
इस उदाहरण में आप देख सकते हैं कि:
-
labelsएक शब्दकोश भी हो सकते हैं। मल्टी-हेडेड मॉडल के लिए उपयोगी। -
eval_input_receiver_fnफ़ंक्शन संभवतः आपकेserving_input_receiver_fnफ़ंक्शन के समान होगा। लेकिन, कुछ मामलों में, आप स्लाइसिंग के लिए अतिरिक्त सुविधाओं को परिभाषित करना चाह सकते हैं। उदाहरण के लिए, आप एकage_categoryसुविधा पेश करते हैं जोageसुविधा को कई बकेट में विभाजित करती है। फिर आप यह समझने में सहायता के लिए टीएफएमए में इस सुविधा का उपयोग कर सकते हैं कि आपके मॉडल का प्रदर्शन विभिन्न आयु श्रेणियों में कैसे भिन्न है।
पोस्ट एक्सपोर्ट मेट्रिक्स जोड़ना
अतिरिक्त मेट्रिक्स जो मॉडल में शामिल नहीं हैं, उन्हें add_metrics_callbacks का उपयोग करके जोड़ा जा सकता है। अधिक विवरण के लिए, run_model_analysis के लिए Python सहायता देखें।
अंत-से-अंत उदाहरण
फीचर प्रीप्रोसेसिंग के लिए टेन्सरफ्लो ट्रांसफॉर्म , प्रशिक्षण के लिए टेन्सरफ्लो एस्टिमेटर्स , मूल्यांकन के लिए टेन्सरफ्लो मॉडल एनालिसिस और ज्यूपिटर और सर्विंग के लिए टेन्सरफ्लो सर्विंग जैसे व्यापक एंड-टू-एंड उदाहरण को आज़माएं।
एक कस्टम पोस्ट निर्यात मीट्रिक जोड़ना
यदि आप टीएफएमए में अपना स्वयं का कस्टम पोस्ट निर्यात मीट्रिक जोड़ना चाहते हैं, तो कृपया यहां दस्तावेज़ देखें।