Я хочу развернуть обученную модель TF, используя tensorflow-serving
(или TFS
). Так как я использовал custom ops в моей оригинальной модели. Итак, мне нужно собрать TFS из исходного кода и добавить пользовательский оператор в tensorflow_serving/model_servers/BUILD
файл.
TENSORFLOW_DEPS = [
"@org_tensorflow//tensorflow/core:tensorflow",
"//tensorflow_serving/servables/tensorflow:classification_service",
"//tensorflow_serving/servables/tensorflow:get_model_metadata_impl",
"//tensorflow_serving/servables/tensorflow:multi_inference",
"//tensorflow_serving/servables/tensorflow:regression_service",
"//tensorflow_serving/servables/tensorflow:saved_model_bundle_source_adapter",
"//tensorflow_serving/servables/tensorflow:session_bundle_source_adapter",
"//tensorflow_serving/servables/tensorflow:predict_impl",
"//tensorflow_serving/custom_ops/interpolation:tf_interpolate.so",
"//tensorflow_serving/custom_ops/grouping:tf_grouping.so",
"//tensorflow_serving/custom_ops/sampling:tf_sampling.so",
]
Также файл BUILD в пользовательской операции tf_grouping:
package(
default_visibility = [
"//tensorflow_serving:internal",
],
features = ["-layering_check"],
)
cc_library(
name = "tf_grouping.so",
srcs = ["tf_grouping.cc", "tf_grouping.cu.o"],
visibility = [
"//visibility:public",
],
copts = ["-std=c++11"],
deps = [
"@org_tensorflow//tensorflow/core:framework",
"@org_tensorflow//tensorflow/core:framework_headers_lib",
],
alwayslink = 1,
)
Но я застрял при сборке tf_model_server из источника, используя базель. Выдает это сообщение об ошибке :
ERROR: /home/jake/Documents/serving/tensorflow_serving/custom_ops/grouping/BUILD:8:1: C++ compilation of rule '//tensorflow_serving/custom_ops/grouping:tf_grouping.so' failed (Exit 1)
tensorflow_serving/custom_ops/grouping/tf_grouping.cc:10:26: fatal error: cuda_runtime.h: No such file or directory
compilation terminated.
INFO: Elapsed time: 49.693s, Critical Path: 15.87s
INFO: 13 processes: 13 local.
FAILED: Build did NOT complete successfully
Я включил <cuda_runtime.h>
в свою собственную операцию tf_grouping.cc . Я также написал файл tf_grouping.cu , содержащий ядра CUDA. Первоначально я просто использовал NVCC
, чтобы сначала скомпилировать файл tf_grouping.cu и получить tf_grouping.cu.o . Затем я использовал g ++ для компиляции tf_grouping.cc с tf_grouping.cu.o , чтобы получить tf_grouping.so файл. Что мне теперь делать, если я хочу скомпилировать tf_model_server с поддержкой графического процессора?