Apache SystemML 标量矩阵(元素明智)乘法不起作用

Apache SystemML scalar-martix (elementwise) multiplication not working

请考虑以下代码:

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

其中 learningRate 是 double 和 dJdW1/dJdW1 二维矩阵。

我收到这个错误:

ERROR: Runtime error in program block generated from statement block between lines 58 and 61 -- Error evaluating instruction: CP\xb0-*\xb0W2\xb7MATRIX\xb7DOUBLE\xb01.0E-5\xb7SCALAR\xb7DOUBLE\xb7true\xb0dJdW2\xb7MATRIX\xb7DOUBLE\xb0_mVar117\xb7MATRIX\xb7DOUBLE

编辑 12.7.17:

加上这个...

ordinal not in range(128)'))

可以找到整个DMLhere

可以找到完整的错误here

整个jupyther notebook都能找到here

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

 : 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 矩阵。