공식 문서를보고 : 무엇을 볼 수 있습니까? 평소 요금? 자, 추측 : 이것은 바젤이없는 구역입니다. 우리는 여기에서 cmake를 사용합니다!
이 컬렉션에는 C, C ++, Go 및 Python에서 Tensorflow를 사용하는 신뢰할 수 있고 데드 단순한 예제가 포함되어 있습니다. 사전 훈련 된 모델을로드하거나 CUDA가 있거나없는 사용자 정의 작업을 컴파일합니다. 모든 빌드는 가장 최근의 안정적인 Tensorflow 버전에 대해 테스트되며 CMAKE에 사용자 정의 FindTensorFlow.cmake를 사용합니다. 이 Cmake 파일에는 특정 TF 버전의 버그에 대한 일반적인 작업이 포함되어 있습니다.
| 텐서 플로 | 상태 |
|---|---|
| 1.14.0 | |
| 1.13.1 | |
| 1.12.0 | |
| 1.11.0 | |
| 1.10.0 | |
| 1.9.0 |
저장소에는 다음 예제가 포함되어 있습니다.
| 예 | 설명 |
|---|---|
| 사용자 정의 작동 | C ++/Cuda에서 Tensorflow에 대한 사용자 정의 작업을 구축하십시오 (PIP 만 필요) |
| 추론 (C ++) | C ++에서 추론을 실행하십시오 |
| 추론 (c) | c에서 추론을 실행하십시오 |
| 추론 (GO) | GO에서 추론을 실행하십시오 |
| 이벤트 작가 | C ++의 Tensorboard 용 이벤트 파일을 작성하십시오 |
| Keras CPP- 관절 예제 | C ++에서 케라 모델을 실행하십시오 |
| 간단한 예 | C ++로 텐서 플로 그래프를 작성하고 실행하십시오 |
| 이미지 예제 조정 | OpenCV가 있거나없는 Tensorflow에서 이미지를 크기를 조정하십시오 |
이 예제는 C ++/CUDA 및 CMAKE를 사용하여 사용자 정의 작업을 생성하는 프로세스를 보여줍니다. 피크 성능을 얻는 구현을 보여주기위한 것은 아닙니다 . 대신, 그것은 단지 보일러 플레이트 템플릿입니다.
user@host $ pip install tensorflow-gpu --user # solely the pip package is needed
user@host $ cd custom_op/user_ops
user@host $ cmake .
user@host $ make
user@host $ python test_matrix_add.py
user@host $ cd ..
user@host $ python example.py 이 예제는 이미지를로드하는 프로세스 (OpenCV 또는 TensorFlow 사용)를 보여주고 이미지를 JPG 또는 PNG (OpenCV 또는 Tensorflow 사용)로 저장하는 이미지를 크기 롭습니다.
user@host $ cd examples/resize
user@host $ export TENSORFLOW_BUILD_DIR=...
user@host $ export TENSORFLOW_SOURCE_DIR=...
user@host $ cmake .
user@host $ make 벡터 입력을 사용하고 인코딩 된 이미지 입력을 사용하는 텐서 플로 서빙의 처리를 보여주는 두 가지 예가 있습니다.
server@host $ CHOOSE=basic # or image
server@host $ cd serving/ ${CHOOSE} /training
server@host $ python create.py # create some model
server@host $ cd serving/server/
server@host $ ./run.sh # start server
# some some queries
client@host $ cd client/bash
client@host $ ./client.sh
client@host $ cd client/python
# for the basic-example
client@host $ python client_rest.py
client@host $ python client_grpc.py
# for the image-example
client@host $ python client_rest.py /path/to/img.[png,jpg]
client@host $ python client_grpc.py /path/to/img.[png,jpg] 파이썬에서 모델을 생성하고 그래프를 디스크에 저장 한 후 C/C+/GO/Python에로드하여 추론을 수행하십시오. 이 예제는 Tensorflow C-API를 기반으로하기 때문에 PIP-Package (Tensorfow-GPU)에 배송 되지 않는 libtensorflow_cc.so 라이브러리가 필요합니다. 따라서 소스에서 미리 텐서 플로우를 구축해야합니다.
user@host $ ls ${TENSORFLOW_SOURCE_DIR}
ACKNOWLEDGMENTS bazel-genfiles configure pip
ADOPTERS.md bazel-out configure.py py.pynano
ANDROID_NDK_HOME bazel-tensorflow configure.py.bkp README.md
...
user@host $ cd ${TENSORFLOW_SOURCE_DIR}
user@host $ ./configure
user@host $ # ... or whatever options you used here
user@host $ bazel build -c opt --copt=-mfpmath=both --copt=-msse4.2 --config=cuda //tensorflow:libtensorflow.so
user@host $ bazel build -c opt --copt=-mfpmath=both --copt=-msse4.2 --config=cuda //tensorflow:libtensorflow_cc.so
user@host $ export TENSORFLOW_BUILD_DIR=/tensorflow_dist
user@host $ mkdir ${TENSORFLOW_BUILD_DIR}
user@host $ cp ${TENSORFLOW_SOURCE_DIR} /bazel-bin/tensorflow/ * .so ${TENSORFLOW_BUILD_DIR} /
user@host $ cp ${TENSORFLOW_SOURCE_DIR} /bazel-genfiles/tensorflow/cc/ops/ * .h ${TENSORFLOW_BUILD_DIR} /includes/tensorflow/cc/ops/우리는 매우 기본적인 모델을 실행합니다
x = tf . placeholder ( tf . float32 , shape = [ 1 , 2 ], name = 'input' )
output = tf . identity ( tf . layers . dense ( x , 1 ), name = 'output' ) 따라서 정기적으로하는 것처럼 모델을 저장하십시오. 이것은 일부 출력 외에 example.py 에서 수행됩니다
user@host $ python example.py
[<tf.Variable 'dense/kernel:0' shape=(2, 1) dtype=float32_ref>, <tf.Variable 'dense/bias:0' shape=(1,) dtype=float32_ref>]
input [[1. 1.]]
output [[2.1909506]]
dense/kernel:0 [[0.9070684]
[1.2838823]]
dense/bias:0 [0.] user@host $ python python/inference.py
[<tf.Variable 'dense/kernel:0' shape=(2, 1) dtype=float32_ref>, <tf.Variable 'dense/bias:0' shape=(1,) dtype=float32_ref>]
input [[1. 1.]]
output [[2.1909506]]
dense/kernel:0 [[0.9070684]
[1.2838823]]
dense/bias:0 [0.] user@host $ cd cc
user@host $ cmake .
user@host $ make
user@host $ cd ..
user@host $ ./cc/inference_cc
input Tensor<type: float shape: [1,2] values: [1 1]>
output Tensor<type: float shape: [1,1] values: [2.19095063]>
dense/kernel:0 Tensor<type: float shape: [2,1] values: [0.907068372][1.28388226]>
dense/bias:0 Tensor<type: float shape: [1] values: 0> user@host $ cd c
user@host $ cmake .
user@host $ make
user@host $ cd ..
user@host $ ./c/inference_c
2.190951
user@host $ go get github.com/tensorflow/tensorflow/tensorflow/go
user@host $ cd go
user@host $ ./build.sh
user@host $ cd ../
user@host $ ./inference_go
input [[1 1]]
output [[2.1909506]]
dense/kernel:0 [[0.9070684] [1.2838823]]
dense/bias:0 [0]