Jalankan model TensorFlow di C ++ tanpa Bazel, tanpa instalasi TensorFlow dan tanpa menyusun TensorFlow. Lakukan manipulasi tensor, gunakan eksekusi yang bersemangat dan jalankan model yang disimpan langsung dari 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;Anda dapat melihat ke contoh untuk melihat contoh lengkap tentang cara memuat jaringan yang dalam dan memberinya makan dengan gambar sampel.
CPPFLOW menggunakan TensorFlow C API untuk menjalankan model, yang berarti Anda dapat menggunakannya tanpa memasang TensorFlow dan tanpa menyusun seluruh repositori TensorFlow dengan Bazel, Anda hanya perlu mengunduh C API. Dengan proyek ini Anda dapat mengelola dan menjalankan model Anda di C ++ tanpa khawatir tentang Void, Malloc atau Free. Dengan CPPFLOW Anda dapat dengan mudah:
Karena menggunakan TensorFlow 2 C API, Anda hanya perlu mengunduhnya, periksa dokumen untuk melihat panduan tentang cara melakukannya.
Setelah itu, Anda dapat menginstal perpustakaan:
git clone [email protected]:serizba/cppflow.git
cd cppflow/examples/load_model
mkdir build
cd build
cmake ..
make -j
make installSekarang Anda dapat memeriksa panduan QuickStart untuk menjalankan program menggunakan CPPFLOW.
Periksa dokumen di https://serizba.github.io/cppflow/.
Di sana Anda dapat menemukan panduan QuickStart dan informasi lebih lanjut tentang cara menginstal perpustakaan dan menjalankan contohnya.
CPPFLOW pada dasarnya adalah pembungkus di atas TensorFlow C API. Kelas dasar, tensor adalah pembungkus tensor yang bersemangat, dan itu hanya merupakan penunjuk ke representasi TF -nya.
API TF C menyediakan alat untuk memanggil semua ops mentah TF, tetapi menggunakannya membingungkan. CPPFLOW mencakup fasad di atas fungsi -fungsi ini, sehingga dapat disebut dengan mudah sebagai fungsi C ++ normal. Untuk mencapai hal ini, file OPS berisi (kebanyakan) semua fungsi OP RAW TF, tetapi dengan antarmuka C ++ sederhana. File ini telah dihasilkan secara otomatis menggunakan skrip kecil.
CPPFLOW juga menyertakan pembungkus pada model yang disimpan TF, kelas model, sehingga mereka dapat dengan mudah dibuka dan dieksekusi.
Jika Anda bersedia berkontribusi pada proyek ini, silakan kunjungi peta jalan pengembangan CPPFLOW. Khusus contributor_wanted berlabel PR atau masalah sangat disambut dengan kontributor baru.
Jika Anda menggunakan kode ini atau menemukan pekerjaan ini berguna dalam penelitian Anda, silakan kutip kami:
@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}
}
Kami menggunakan Panduan Gaya C ++ Google menggunakan Linker Kode Statis CPPLINT. Kami menggunakan panduan gaya Python Google menggunakan statis code linker pylint menggunakan konfigurasi pylintrc terlampir.
CPPFLOW tidak terkait dengan TensorFlow. Ikon CPPFLOW adalah versi yang dimodifikasi dari logo TensorFlow. TensorFlow, logo TensorFlow dan tanda terkait adalah merek dagang dari Google Inc.