我试图通过添加非反双曲函数(sinh和cosh)来为Tensorflow代码做出贡献,如[issue#7531]所述 (https://github.com/tensorflow/tensorflow/issues/7531)。
当我使用命令
测试构建时datetime
但我收到错误:
$ bazel test --config opt //tensorflow/core/kernels:cwise_ops_test
可以看到完整输出here。
我所做的是在> ...
> external/eigen_archive/unsupported/Eigen/CXX11/../../../Eigen/src/Core/MathFunctions.h:1446:3:
> note: 'sinh' should be declared prior to the call site or in an
> associated namespace of one of its arguments T sinh(const T &x) { ^
> 1 error generated. Target //tensorflow/core/kernels:cwise_ops_test
> failed to build Use --verbose_failures to see the command lines of
> failed build steps. INFO: Elapsed time: 6.106s, Critical Path: 5.78s
>
> Executed 0 out of 1 test: 1 fails to build.
中添加这两个模板:
cwise_ops.h
并创建了两个新文件template <typename T>
struct acos : base<T, Eigen::internal::scalar_acos_op<T> > {};
template <typename T>
struct atan : base<T, Eigen::internal::scalar_atan_op<T> > {};
// The following two templates are new:
template <typename T>
struct sinh : base<T, Eigen::internal::scalar_sinh_op<T> > {};
template <typename T>
struct cosh : base<T, Eigen::internal::scalar_cosh_op<T> > {};
和cwise_op_sinh.cc
,它们只是非双曲线版本的副本,分别用sinh和cosh替换sin或cos。据我所知,双曲线函数现在的实现与Eigen库中的其他数学函数完全相同。但据我所知,它给出了引用特征源中缺少声明的错误。
这是我的第一个开源贡献,除此之外我还是C ++的新手。我做错了可能会有更多的C ++经验。
答案 0 :(得分:0)
您是否将`cwise_op_sinh.cc'和'cwise_op_cosh.cc'添加到相应的BUILD文件中?快速搜索告诉我它应该是here但我可能是错的。你必须告诉Bazel你的新文件。
答案 1 :(得分:0)
(这应该是对OP问题的评论,但我缺乏必要的业力。)
--config opt
标志似乎错了,您的意思是-c opt
用于优化构建吗? --config opt
表示使用&#34; opt&#34;来自bazelrc文件的配置,假设你在bazelrc文件中有像&#34; build:opt --flag1 = value1&#34;和类似的。如果你不这样做,那么Bazel应该显示一条警告:
WARNING: Config values are not defined in any .rc file: "opt"
或者这种效果。