【发布时间】:2018-11-11 22:55:11
【问题描述】:
我看到很多教程解释了如何在 Tensorflow 的 Bazel WORKSPACE 中构建项目(例如 this one)。但我似乎无法找到一种方法来构建我自己的项目并将 tensorflow 作为依赖项包含在内。我查看了this Bazel 文档,显然有一种方法可以使用外部依赖项进行构建,我尝试自己遵循。 (因为 tf 也是用 bazel 构建的)。
这是我的目录结构:
.
├── perception
│ ├── BUILD
│ └── graph_loader.cc
├── third-party
│ └── tensorflow # I cloned tf repo into this folder
└── WORKSPACE
这是我的perception/BUILD 文件中的内容:
cc_binary(
name = "graph-loader",
srcs = [
"graph_loader.cc",
],
deps = [
"@tensorflow//tensorflow:libtensorflow.so",
]
)
这是我的WORKSPACE 文件中的内容:
local_repository(
name = "tensorflow",
path = "path/to/my/project/third-party/tensorflow",
)
这是我的 perception/graph_loader.cc 文件中的内容:
#include "tensorflow/cc/client/client_session.h"
#include "tensorflow/cc/ops/standard_ops.h"
#include "tensorflow/core/framework/tensor.h"
int main() {
using namespace tensorflow;
using namespace tensorflow::ops;
Scope root = Scope::NewRootScope();
// Matrix A = [3 2; -1 0]
auto A = Const(root, { {3.f, 2.f}, {-1.f, 0.f} });
// Vector b = [3 5]
auto b = Const(root, { {3.f, 5.f} });
// v = Ab^T
auto v = MatMul(root.WithOpName("v"), A, b, MatMul::TransposeB(true));
std::vector<Tensor> outputs;
ClientSession session(root);
// Run and fetch v
TF_CHECK_OK(session.Run({v}, &outputs));
// Expect outputs[0] == [19; -3]
LOG(INFO) << outputs[0].matrix<float>();
return 0;
}
我使用以下命令运行我的构建:
build //perception:graph-loader
但它失败并显示此消息:
ERROR: path/to/my/project/perception/BUILD:1:1: error loading package '@tensorflow//tensorflow': Extension file not found. Unable to load package for '@local_config_cuda//cuda:build_defs.bzl': The repository could not be resolved and referenced by '//perception:graph-loader'
ERROR: Analysis of target '//perception:graph-loader' failed; build aborted: error loading package '@tensorflow//tensorflow': Extension file not found. Unable to load package for '@local_config_cuda//cuda:build_defs.bzl': The repository could not be resolved
INFO: Elapsed time: 0.037s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (1 packages loaded, 0 targets configured)
currently loading: @tensorflow//tensorflow
以下是问题:
- 我做错了什么导致我的构建不断失败?
- 是否有可能做我在这里尝试的事情,即在我的项目中构建 tensorflow?
【问题讨论】:
标签: c++ tensorflow bazel