【问题标题】:Microsoft Accelerator Divide Operation微软加速器划分操作
【发布时间】:2015-11-10 09:27:47
【问题描述】:

我想在 Microsoft Accelerator 中执行一个相当简单的除法操作:

X = P / (1 + K * O')

其中 P、K 和 O 是向量,K * O' 执行点积运算。

我尝试了PA.Divide(P, 1 + PA.Sum(PA.Multiply(K, O))),但这不起作用,因为它给出了一个错误,指出提供给除法命令的矩阵具有不同的维度,这是有道理的,因为第二个参数应该只是一个标量。

我通过将第二个参数转换为数组然后使用它的第一个元素来解决这个问题,但这会显着减慢计算速度。

如何在不先转换为数组的情况下执行此操作?

【问题讨论】:

    标签: .net accelerator


    【解决方案1】:

    我不知道 Accelerator 中的乘法求逆有多昂贵,但如果你用这种方式重写你的表达式,你可以使用标量乘法:

    X = P * (1 / (1 + K * O'))
    

    1 / (1 + K + O') 是您已经在计算的标量的乘法逆元。

    这是假设您可以使用标量乘法(应该是 - 这是一个基本操作)。但是我当然不熟悉加速器。我只是从向量数学的角度来说。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-04
      • 1970-01-01
      相关资源
      最近更新 更多