小编Nat*_*ion的帖子

Rust ndarray 数组的初等函数数学运算

我只是想为 Rust ndarray 进行基本数学运算(例如,sin、exp、log、sqrt ...)。但是,我没有从阅读 ndarray 的文档中找到任何有用的示例。

比如说:

extern crate ndarray;

use ndarray as nd;

fn main() {
    let matrix = nd::array![[1., 2., 3.], [9., 8., 7.]];
    let result = some_math(matrix);
    println!("{}", result)
}

fn some_math(...) {
    //Here I would like to do elementwise exp() and sqrt
    sqrt(exp(...))
    // Using f64::exp would fail.
}
Run Code Online (Sandbox Code Playgroud)

如何some_math高效地实施?我当然可以通过循环矩阵的元素来执行元素操作,但这听起来不太好,我不想这样做。

numpypython 中,这就是np.sqrt(np.exp(matrix)). 我的意思是 Rust 确实是一门很棒的语言,但是,即使是简单的代数也确实不方便(缺乏适当的生态系统)。


更新:有一个正在进行的ndarray拉取请求。如果这是接受的,那么你可以简单地做matrix.exp().sqrt()等等。

ndarray-doc 中有一个非常隐藏的页面,告诉我们如何进行此类数学运算。


一些相关问题:1 2

rust rust-ndarray

6
推荐指数
1
解决办法
1182
查看次数

Tensorflow:如何平铺以一定顺序复制的张量?

例如,我有一个张量A = tf.Variable([a, b, c, d, e]),通过 tf.tile(),它可以给张量[a, b, c, d, e, a, b, c, d, e]

但是我想A改成类似:的形式[a, a, b, b, c, c, d, d, e],其中元素在原始位置重复。

(通过不同的操作)实现此目标的最有效方法(更少的操作)是什么?

python tensorflow

5
推荐指数
1
解决办法
994
查看次数

Tensorflow,Keras:如何在具有停止梯度的 Keras 层中设置 add_loss?

问题 1

我们知道我们可以tf.stop_gradient(B)用来防止B在反向传播中训练变量。但我不知道如何止损B

简单来说,假设我们的损失是:

loss = categorical_crossentropy + my_loss
B = tf.stop_gradient(B)
Run Code Online (Sandbox Code Playgroud)

其中categorical_crossentropymy_loss一切都取决于B。所以,如果我们为 设置停止梯度B,它们都将B作为常数。

但是我如何只设置my_loss停止渐变 wrt Bcategorical_crossentropy保持不变?就像是B = tf.stop_gradient(B, myloss)

我的代码是:

my_loss = ...
B = tf.stop_gradient(B)
categorical_crossentropy = ...
loss = categorical_crossentropy + my_loss
Run Code Online (Sandbox Code Playgroud)

那行得通吗?或者,如何使它起作用?


问题2

好的,伙计们,如果 Q1 可以解决,我的最终任务是如何在自定义层中做到这一点?

说得具体,假设我们有一个自定义层,其中有训练的权重AB和自我损失my_loss只有这一层。

loss = categorical_crossentropy + my_loss
B = tf.stop_gradient(B)
Run Code Online (Sandbox Code Playgroud)

如何使w …

python keras tensorflow

5
推荐指数
0
解决办法
2149
查看次数

Matlab:网格数较少的“mesh()”图

假设data是一个大小为 的矩阵129 * 129

通过使用

mesh(data, 'FaceColor', 'none', 'EdgeColor', 'black')

我们得到类似的东西

在此输入图像描述

我们可以发现网格相当密集。我想要相同的图形,但网格线数量较少,例如

在此输入图像描述


data例如,当然可以绘制较小的图data(1:10:end, 1:10:end)。但这样一来,剧情就不再像以前那么准确了。

另一个例子是plot(..., 'MarkerIndices', ...)。这可以为您提供标记数量较少的图,而无需修改图。https://www.mathworks.com/help/matlab/creating_plots/create-line-plot-with-markers.html

matlab plot mesh figure matlab-figure

5
推荐指数
1
解决办法
567
查看次数

如何在Python中删除正则表达式(re)的重复结果

有一个字符串:

str = 'Please Contact Prof. Zheng Zhao: <a href="mailto:zheng.z@xxx.com">Zheng.Z@xxx.com</a> for details, or our HR: john.will@xxx.com'
Run Code Online (Sandbox Code Playgroud)

我想解析该字符串中的所有电子邮件,所以我设置:

p = r'[\w\.]+@[\w\.]+'
re.findall(p, str)
Run Code Online (Sandbox Code Playgroud)

结果是:

['zheng.z@xxx.com', 'Zheng.Z@xxx.com', 'john.will@xxx.com']
Run Code Online (Sandbox Code Playgroud)

显然,第一个和第二个是重复的。我们如何防止这种情况发生?

python expression

2
推荐指数
1
解决办法
2602
查看次数

如何隐藏轴但保持网格?

如果我们有一个数字

plot(x, y);
grid on;
Run Code Online (Sandbox Code Playgroud)

我们得到这样的东西

在此处输入图片说明

但是现在,我希望隐藏轴,所以我尝试了以下命令:

axis off
set(gca,'xtick',[])
set(gca,'ytick',[])
set(gca,'visible','off')
Run Code Online (Sandbox Code Playgroud)

他们一起成功地隐藏了轴,但是网格也被删除了

set(gca, 'xticklabel', []) 可以隐藏标签,但不能隐藏轴。

所以,我怎么隐藏刻度标签,留下只有情节电网

matlab customization plot hide matlab-figure

2
推荐指数
1
解决办法
83
查看次数

Python:如何有效地探查哪一个是None?

如果我有一个变量列表[A, B, C, D]。我如何有效地找到哪个None

我有

if None in (A, B, C, D):
    ValueError("None found.")
Run Code Online (Sandbox Code Playgroud)

但是它仅测试其中是否没有None,并且无法找到它。我可以使用for循环轻松找到它,但是请不要这样做...我需要的是

if None in (A, B, C, D):
    # Find where is None
    ValueError("None found in {?}.")
Run Code Online (Sandbox Code Playgroud)

python null

0
推荐指数
1
解决办法
60
查看次数