请考虑以下代码:
#update
W1 = W1 - learningRate * dJdW1
W2 = W2 - learningRate * dJdW2
其中learningRate是double和dJdW1/dJdW1 2d矩阵。
我收到此错误:
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)'))
整个DML可以找到here
完整的错误可以在 here 找到
整个 jupyther 笔记本可以找到 here
最佳答案
单元格标量矩阵运算很好。查看您的错误,它表明您的矩阵/向量维度不兼容:
: 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 矩阵。
关于apache-spark - Apache SystemML 标量矩阵(元素方面)乘法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45044260/