2017-07-11 7 views
0

は、次のコードを検討してください動作しない:learningRateはダブルで、dJdW1/dJdW1 2D行列ApacheのSystemMLスカラー-martix(要素ごと)乗算は

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

私はこのエラーを取得しています:

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

EDIT 12.7.17:

プラス、このいずれかを...

ordinal not in range(128)'))

全体DMLはhere

を見つけることができます

完全なエラーが見つかりましたhere

全体jupytherノートブックはhere

答えて

1

cellwiseスカラー行列演算が細かい見つけることができます。

W2 = W2 - learningRate * dJdW2 

W2 W2 =ランド(行を初期化されている= hiddenLayerSize:これはから来て、

: 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) 

があなたのノートを見て:あなたのエラーを見てみると、それはあなたの行列/ベクトルの次元は互換性がないことを言います、cols = outputLayerSize) を3x1行列として、dJDW2を2x3行列とします。

+0

は、戻り値の型をreturn(matrix [double] dJdW1、matrix [double] dJdW1){return(行列[double] dJdW1、matrix [double] dJdW2){ –

関連する問題