Neuropod هي مكتبة توفر واجهة موحدة لتشغيل نماذج التعلم العميقة من أطر عمل متعددة في C ++ و Python. يسهل Neuropod على الباحثين بناء نماذج في إطار من اختيارهم مع تبسيط إنتاج هذه النماذج.
وهي تدعم حاليًا TensorFlow و Pytorch و Torchscript و Keras و Ludwig.
لمزيد من المعلومات:
يشبه تشغيل طراز TensorFlow تمامًا تشغيل نموذج Pytorch.
x = np . array ([ 1 , 2 , 3 , 4 ])
y = np . array ([ 5 , 6 , 7 , 8 ])
for model_path in [ TF_ADDITION_MODEL_PATH , PYTORCH_ADDITION_MODEL_PATH ]:
# Load the model
neuropod = load_neuropod ( model_path )
# Run inference
results = neuropod . infer ({ "x" : x , "y" : y })
# array([6, 8, 10, 12])
print results [ "out" ]انظر البرنامج التعليمي أو دليل Python أو C ++ دليل لمزيد من الأمثلة.
بعض فوائد هذا تشمل:
يمكن تشغيل أي نموذج Neuropod من كل من C ++ و Python (حتى نماذج Pytorch التي لم يتم تحويلها إلى Torchscript).
يتيح لك هذا التركيز أكثر على المشكلة التي تحلها بدلاً من الإطار الذي تستخدمه لحلها.
على سبيل المثال ، إذا قمت بتحديد مشكلة API للكشف عن الكائنات ثنائية الأبعاد ، فإن أي نموذج ينفذ أنه يمكنه إعادة استخدام جميع رمز الاستدلال الحالي والبنية التحتية لهذه المشكلة.
INPUT_SPEC = [
# BGR image
{ "name" : "image" , "dtype" : "uint8" , "shape" : ( 1200 , 1920 , 3 )},
]
OUTPUT_SPEC = [
# shape: (num_detections, 4): (xmin, ymin, xmax, ymax)
# These values are in units of pixels. The origin is the top left corner
# with positive X to the right and positive Y towards the bottom of the image
{ "name" : "boxes" , "dtype" : "float32" , "shape" : ( "num_detections" , 4 )},
# The list of classes that the network can output
# This must be some subset of ['vehicle', 'person', 'motorcycle', 'bicycle']
{ "name" : "supported_object_classes" , "dtype" : "string" , "shape" : ( "num_classes" ,)},
# The probability of each class for each detection
# These should all be floats between 0 and 1
{ "name" : "object_class_probability" , "dtype" : "float32" , "shape" : ( "num_detections" , "num_classes" )},
]هذا يتيح لك
انظر البرنامج التعليمي لمزيد من التفاصيل.
إذا كان لديك العديد من النماذج التي تأخذ مجموعة مماثلة من المدخلات ، فيمكنك إنشاء وتحسين خط أنابيب توليد إدخال واحد من الإطار-ومشاركته عبر النماذج.
نماذج قائمة بذاتها بالكامل (بما في ذلك العمليات المخصصة)
عمليات فعالة صفرية
تم اختباره على منصات بما في ذلك
العزلة النموذجية مع التنفيذ المباشر
قم بالتبديل من التشغيل في العملية إلى العمل خارج العملية مع سطر واحد من التعليمات البرمجية
راجع البرنامج التعليمي الأساسي للمقدمة للحصول على نظرة عامة على كيفية البدء مع Neuropod.
يذهب دليل Python و C ++ دليل مزيد من التفاصيل حول تشغيل نماذج Neuropod.