需要帮助将python代码(使用Numpy)转换为Matlab等效

时间:2017-11-30 05:55:53

标签: python matlab numpy neural-network xor

我正在使用XOR神经网络,它使用Sigmoid激活功能。 我有一个工作的python代码,但我需要将其中一行转换为MATLAB理解的代码。我查阅了NumPy上的文档,我知道它有自己的数组运算符。我不能把dH的MATLAB等效工具放在一起。这部分是明确的for循环。 dZ = E * sigmoid_(Z) # delta Z dH = dZ.dot(Wz.T) * sigmoid_(H) # delta H

解释也有助于我进一步理解。如果需要我的完整代码,请不要犹豫,但我知道不需要。

2 个答案:

答案 0 :(得分:1)

通常你创建一个从Z和H计算(dZ,dH)的函数。使用y =(Z,H):

function dy = myODE(t,y)
  dy(1) = E * sigmf_(y(1), [a b])
  dy(2) = dy(1).dot(W*y(1).T) * sigmf_(y(2), [a b])

来源:https://de.mathworks.com/help/matlab/math/choose-an-ode-solver.html?requestedDomain=www.mathworks.com

答案 1 :(得分:0)

在Matlab中

    dZ = E * sigmoid_(Z)                        # delta Z
    dH = dZ.dot(Wz.T) * sigmoid_(H)             # delta H

dZ使用Matrix产品(点积)

Matlab:a * b MatrixMultiply函数(A,B)

dH术语可以使用np.dot重现 但有时Matlab点产品:

Vector dot product, u · v dot(u,v) dot(u,v)

vs你的:

dZ.dot(Wz.T)

在python中这可能等于

dot(W.T,dZ)