Neuropod adalah perpustakaan yang menyediakan antarmuka yang seragam untuk menjalankan model pembelajaran yang mendalam dari berbagai kerangka kerja di C ++ dan Python. Neuropod memudahkan para peneliti untuk membangun model dalam kerangka pilihan mereka sambil juga menyederhanakan produksi model ini.
Saat ini mendukung TensorFlow, Pytorch, Torchscript, Keras dan Ludwig.
Untuk informasi lebih lanjut:
Menjalankan model TensorFlow terlihat persis seperti menjalankan model 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" ]Lihat tutorial, panduan Python, atau panduan C ++ untuk lebih banyak contoh.
Beberapa manfaatnya termasuk:
Setiap model neuropoda dapat dijalankan dari C ++ dan Python (bahkan model Pytorch yang belum dikonversi menjadi Torchscript).
Ini memungkinkan Anda lebih fokus pada masalah yang Anda selesaikan daripada kerangka kerja yang Anda gunakan untuk menyelesaikannya.
Misalnya, jika Anda mendefinisikan API masalah untuk deteksi objek 2D, model apa pun yang mengimplementasikannya dapat menggunakan kembali semua kode inferensi yang ada dan infrastruktur untuk masalah itu.
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" )},
]Ini memungkinkan Anda
Lihat tutorial untuk detail lebih lanjut.
Jika Anda memiliki beberapa model yang menggunakan input yang serupa, Anda dapat membangun dan mengoptimalkan satu pipa pembuatan input-agnostik-agnostik dan membagikannya di seluruh model.
Model mandiri sepenuhnya (termasuk OP khusus)
Operasi salinan nol yang efisien
Diuji pada platform termasuk
Isolasi model dengan eksekusi out-of-process
Beralih dari menjalankan dalam proses ke menjalankan out-of-process dengan satu baris kode
Lihat tutorial pengantar dasar untuk ikhtisar cara memulai dengan neuropod.
Panduan Python dan Panduan C ++ membahas lebih detail tentang menjalankan model neuropoda.