问题标签 [custom-operator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
121 浏览

python - “tensorflow/core/framework/common_shape_fns.h:没有这样的文件或目录”在tensorflow中添加自定义操作时

我正在尝试使用此Tensorflow Doc在Google Colab的 Tensorflow 中添加自定义操作。但是,在构建时出现此错误。

构建命令是,

知道在这种情况下有什么问题吗?

0 投票
0 回答
27 浏览

python - 为模型中的自定义操作设置梯度和权重 (Tensorflow)

我使用本教程问题在 Tensorflow 中编写了一个自定义运算符。它与两个张量完美配合。但是当我将它插入CNN 模型时,它无法正常工作。

我不需要更新这个自定义操作的权重,因为这是一个固定的操作。因此,我尝试使用tf.RegisterGradientops.RegisterGradient来传递相同的梯度([grad, grad])、([None, None])。我什至尝试过使用 ops.NotDifferentiable。但问题依然存在。

我的猜测是我无法正确使用渐变。因为,没有这部分,CNN 模型可以完美运行,但是当我添加它时,输出图像变为blackgray

我怎样才能正确地做到这一点?

0 投票
1 回答
95 浏览

rust - Rust 中数组的加法重载

尝试对两个数组求和 ( [1.0, 2.0] + [3.0, 4.0]) 在 Rust 中失败,因为没有为数组定义加法。我试图重载操作:

然而,现在 rustc 表示这是不允许的:“<em>只有在当前 crate 中定义的特征才能为任意类型实现”。Rust 也不允许定义自定义运算符,例如.+用于元素加法的 orso。

为什么我会想要这样的东西?我正在考虑使用 Rust 进行数值计算,已经厌倦了 Julia 的动态类型,当它无法专门化函数时,我会浪费时间试图降低隐藏的内存分配。但是,要求自定义类型和样板代码对两个数组求和似乎不太实用。对于大数组,当然想要使用其他东西;有ndarray,但基于只是试图将其包装成一般LinearOperator特征,由于缺乏AbstractArraytrait 或 enum 来涵盖具体的数组和视图,以及有些奇怪的 rhs-only 生命周期(尽管后者也可能只是我试图学习生命周期)。但是对于到处发生的简单的小而快速的“内循环”计算来说,这样的事情既不可行也不高效。另一方面,必须使用 ascii-literal 函数进行标准数学运算也无助于可读性。

有任何想法吗?未来是否有希望获得自定义(unicode)运算符或至少能够在本地重载标准运算符?(如果有人想抱怨用户可能定义了无意义的不可读运算符,我可以对按位运算符说同样的话。说真的,在 2021 年,你把它们放在语言本身中?!?)