试图找到一个类似的操作.any(),.all()方法将适用于张量.这是一个场景:
a = tf.Variable([True, False, True], dtype=tf.bool)
# this is how I do it right now
has_true = a.reduce_sum(tf.cast(a, tf.float32))
# this is what I'm looking for
has_true = a.any()
Run Code Online (Sandbox Code Playgroud)
目前正在将我的布尔张量转换为int使用reduce_sum以查看其中是否存在任何真值.有没有更简洁的方法来执行此操作?
我知道通常当链接器在 C++ 中运行时,命令中链接参数的顺序很重要(如此处所述)。
Bazel 以什么顺序链接文件?它是否只是从构建文件的顶部到底部,有没有办法自定义它?
我看到很多教程解释了如何在 Tensorflow 的 Bazel WORKSPACE 中构建项目(就像这个)。但是我似乎无法找到一种方法来构建我自己的项目并将 tensorflow 作为依赖项包含在内。我查看了这个Bazel 文档,显然有一种使用外部依赖项进行构建的方法,我自己也尝试遵循这种方法。(因为 tf 也是用 bazel 构建的)。
这是我的目录结构的样子:
.
??? perception
? ??? BUILD
? ??? graph_loader.cc
??? third-party
? ??? tensorflow # I cloned tf repo into this folder
??? WORKSPACE
Run Code Online (Sandbox Code Playgroud)
这是我的perception/BUILD文件中的内容:
cc_binary(
name = "graph-loader",
srcs = [
"graph_loader.cc",
],
deps = [
"@tensorflow//tensorflow:libtensorflow.so",
]
)
Run Code Online (Sandbox Code Playgroud)
这是我的WORKSPACE文件中的内容:
local_repository(
name = "tensorflow",
path = "path/to/my/project/third-party/tensorflow",
)
Run Code Online (Sandbox Code Playgroud)
这是我的perception/graph_loader.cc文件中的内容:
#include "tensorflow/cc/client/client_session.h"
#include "tensorflow/cc/ops/standard_ops.h"
#include "tensorflow/core/framework/tensor.h" …Run Code Online (Sandbox Code Playgroud)