قم بتشغيل نماذج TensorFlow في C ++ بدون بازل ، دون تثبيت TensorFlow ودون تجميع TensorFlow. قم بإجراء معالجة الموتر ، واستخدم التنفيذ المتحمس وتشغيل النماذج المحفوظة مباشرة من C ++.
// Read the graph
cppflow::model model ( " saved_model_folder " );
// Load an image
auto input = cppflow::decode_jpeg(cppflow::read_file(std::string( " image.jpg " )));
// Cast it to float, normalize to range [0, 1], and add batch_dimension
input = cppflow::cast(input, TF_UINT8, TF_FLOAT);
input = input / 255 .f;
input = cppflow::expand_dims(input, 0 );
// Run
auto output = model(input);
// Show the predicted class
std::cout << cppflow::arg_max(output, 1 ) << std::endl;يمكنك إلقاء نظرة على الأمثلة لرؤية مثال كامل على كيفية تحميل شبكة عميقة وتغذيةها بصورة عينة.
يستخدم CPPFLOW API TensorFlow C لتشغيل النماذج ، مما يعني أنه يمكنك استخدامها دون تثبيت TensorFlow ودون تجميع مستودع TensorFlow بالكامل مع Bazel ، تحتاج فقط إلى تنزيل C API. باستخدام هذا المشروع ، يمكنك إدارة وتشغيل النماذج الخاصة بك في C ++ دون القلق بشأن الفراغ أو المولوك أو مجانًا. مع CPPFLOW يمكنك بسهولة:
نظرًا لأنه يستخدم API TensorFlow 2 C ، عليك فقط تنزيله ، تحقق من المستندات لمشاهدة دليل حول كيفية القيام بذلك.
بعد ذلك ، يمكنك تثبيت المكتبة:
git clone [email protected]:serizba/cppflow.git
cd cppflow/examples/load_model
mkdir build
cd build
cmake ..
make -j
make installيمكنك الآن التحقق من دليل QuickStart لتشغيل برنامج باستخدام CPPFLOW.
تحقق من المستندات على https://serizba.github.io/cppflow/.
هناك يمكنك العثور على أدلة QuickStart ومزيد من المعلومات حول كيفية تثبيت المكتبة وتشغيل الأمثلة.
CPPFLOW هو في الأساس غلاف على Tensorflow C API. الفئة الأساسية ، Tensor هي غلاف من TF Tensor ، وهو مجرد مؤشر لتمثيل TF الخاص به.
يوفر TF C API الأدوات اللازمة لاستدعاء جميع TF RAW OPS ، ولكن استخدامها أمر مربك. يتضمن CPPFLOW واجهة على هذه الوظائف ، بحيث يمكن تسميتها بسهولة كوظائف C ++ العادية. لتحقيق ذلك ، يحتوي الملف OPS على (في الغالب) جميع وظائف TF RAW OPS ، ولكن مع واجهة C ++ بسيطة. تم إنشاء هذا الملف تلقائيًا باستخدام برنامج نصي صغير.
يتضمن CPPFLOW أيضًا غلافًا على النماذج المحفوظة TF ، فئة النماذج ، بحيث يمكن فتحها وتنفيذها بسهولة.
إذا كنت على استعداد للمساهمة في هذا المشروع ، فالرجاء المضي قدمًا في زيارة خريطة طريق التطوير في CPPFLOW. contributor_wanted بشكل خاص في العلاقات العامة المسمى أو القضايا نرحب جدًا بالمساهمين الجدد.
إذا كنت تستخدم هذا الرمز أو وجدت هذا العمل مفيدًا في بحثك ، فيرجى الاستشهاد بنا:
@software{
izquierdo2019cppflow,
author = {Izquierdo, Sergio},
doi = {10.5281/zenodo.7107618},
title = {{cppflow: Run TensorFlow models in C++ without installation and without Bazel}},
url = {https://github.com/serizba/cppflow},
version = {2.0.0},
month = {5},
year = {2019}
}
نستخدم دليل نمط C ++ من Google باستخدام رابط الرمز الثابت CPPLINT. نستخدم دليل نمط بيثون من Google باستخدام Pylint رابط الرمز الثابت باستخدام تكوين Pylintrc المرفق.
لا يرتبط CPPFLOW مع TensorFlow. أيقونة CPPFLOW هي نسخة معدلة من شعار TensorFlow. TensorFlow ، شعار TensorFlow وأي علامات ذات صلة هي علامات تجارية لشركة Google Inc.