0

请考虑以下代码:

  #update
  W1 = W1 - learningRate * dJdW1
  W2 = W2 - learningRate * dJdW2

其中 learningRate 是 double 和 dJdW1/dJdW1 2d 矩阵。

我收到此错误:

错误:从第 58 行和第 61 行之间的语句块生成的程序块中的运行时错误 - 评估指令时出错:CP\xb0-*\xb0W2\xb7MATRIX\xb7DOUBLE\xb01.0E-5\xb7SCALAR\xb7DOUBLE\xb7true\xb0dJdW2\xb7MATRIX\ xb7DOUBLE\xb0_mVar117\xb7MATRIX\xb7DOUBLE

编辑 12.7.17:

加上这个...

序数不在范围内(128)'))

整个 DML 可以在这里找到

完整的错误可以在这里找到

整个 jupyther 笔记本可以在这里找到

4

1 回答 1

1

单元格标量矩阵运算很好。查看您的错误,它说您的矩阵/向量尺寸不兼容:

 : Block sizes are not matched for binary cell operations: 3x1 vs 2x3
 org.apache.sysml.runtime.matrix.data.MatrixBlock.binaryOperations(MatrixBlock.java:2872)
 org.apache.sysml.runtime.instructions.cp.PlusMultCPInstruction.processInstruction(PlusMultCPInstruction.java:66)
 org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:290)

查看您的笔记本,这来自:

 W2 = W2 - learningRate * dJdW2

W2 初始化为 W2 = rand(rows=hiddenLayerSize,cols=outputLayerSize) 为 3x1 矩阵,而 dJDW2 为 2x3 矩阵。

于 2017-07-12T17:07:07.343 回答