मैं coremltool का नया उपयोगकर्ता हूं, वर्तमान में मैं अपने TF मॉडल को परिवर्तित करने और इसे अजगर में चलाने में सक्षम हूं। हालांकि मेरे मॉडल की आउटपुट परत है ">स्वचालित रूप से परिवर्तित int32 के बजाय फ़्लोट करने के लिए। मुझे खुद को पाइथन में रोलबैक रूपांतरण में प्रदर्शन करना है।

model.predict({"Input": image}).astype(int)

क्या कोई जानता है कि इस स्वचालित रूपांतरण को कैसे रद्द किया जाए? और मेरे आउटपुट को एक बहुआयामी सरणी - int के रूप में रखें?

शुक्रिया,

++टी

0
Timocafé 18 सितंबर 2020, 12:46

1 उत्तर

सबसे बढ़िया उत्तर

आप coremltools Python लाइब्रेरी का उपयोग करके मॉडल के आउटपुट के डेटाटाइप को INT32 में बदल सकते हैं। यह स्वचालित रूप से उन नंबरों को फ्लोट से पूर्णांक में डाल देगा।

कुछ इस तरह:

import coremltools
model = coremltools.models.MLModel("YourModel.mlmodel")
spec = model._spec
spec.description.output[0].type.multiArrayType.dataType = coremltools.proto.FeatureTypes_pb2.ArrayFeatureType.INT32
coremltools.models.utils.save_spec(spec, "YourNewModel.mlmodel")

इसका कारण यह स्वचालित रूप से नहीं किया जाता है, क्योंकि आमतौर पर फ़्लोट सही डेटाटाइप होते हैं।

0
Matthijs Hollemans 19 सितंबर 2020, 14:47