请考虑以下代码:
#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 here
可以找到完整的错误here
可以找到整个jupyther笔记本here
答案 0 :(得分: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矩阵。