바젤없이 C ++로 텐서 플로우 모델을 실행하고 텐서 플로 설치 및 텐서 플로우를 컴파일하지 않고 실행하십시오. 텐서 조작을 수행하고 열망하는 실행을 사용하고 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는 TensorFlow C API를 사용하여 모델을 실행합니다. 즉, TensorFlow를 설치하지 않고 Bazel을 사용하여 전체 Tensorflow 저장소를 컴파일하지 않고도 C API를 다운로드하면됩니다. 이 프로젝트를 사용하면 Void, Malloc 또는 무료에 대해 걱정하지 않고 C ++로 모델을 관리하고 실행할 수 있습니다. cppflow를 사용하면 쉽게 다음과 같이 할 수 있습니다.
TensorFlow 2 C API를 사용하므로 다운로드하면됩니다. 문서를 확인하여 수행 방법에 대한 안내서를 확인하십시오.
그 후 라이브러리를 설치할 수 있습니다.
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 열렬한 텐서의 래퍼이며 TF 표현에 대한 포인터입니다.
TF C API는 모든 TF 원시 OP를 호출하는 도구를 제공하지만이를 사용하는 것은 혼란 스럽습니다. CPPFlow에는 이러한 기능에 대한 외관이 포함되어 있으므로 일반적인 C ++ 기능으로 쉽게 호출 할 수 있습니다. 이를 달성하기 위해 파일 OPS에는 모든 TF 원시 OPS 기능이 포함되지만 간단한 C ++ 인터페이스가 포함되어 있습니다. 이 파일은 작은 스크립트를 사용하여 자동으로 생성되었습니다.
CPPFlow에는 TF 저장 모델의 래퍼가 포함되어있어 모델 클래스가 포함되어있어 쉽게 열고 실행할 수 있습니다.
이 프로젝트에 기여할 의향이 있다면 CPPFlow의 개발 로드맵을 방문하십시오. 특별히 contributor_wanted 라벨링 된 PR 또는 문제는 새로운 기고자에게 매우 환영합니다.
이 코드를 사용하거나 연구에 유용한이 작업을 찾으면 다음과 같이 인용하십시오.
@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}
}
정적 코드 링커 CPPLINT를 사용하여 Google의 C ++ 스타일 가이드를 사용합니다. 우리는 첨부 된 pylintrc 구성을 사용하여 정적 코드 링커 Pylint를 사용하여 Google의 Python 스타일 가이드를 사용합니다.
CPPFlow는 텐서 플로와 관련이 없습니다. CPPFlow 아이콘은 수정 된 버전의 TensorFlow 로고입니다. Tensorflow, Tensorflow 로고 및 관련 마크는 Google Inc의 상표입니다.