apache-spark - Apache SystemML 标量矩阵(元素方面)乘法不起作用

标签 apache-spark machine-learning neural-network systemml

请考虑以下代码:

  #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/

相关文章:

python - 如何 reshape 颜色 channel 的 numpy 图像数组

apache-spark - Spark for Python - 无法将字符串列转换为十进制/ double

python - 随机森林分类 - 最接近改变类别的点

algorithm - 皮质学习实现(Numenta 的 HTM 理论)

python - 基于 Python 中较小的数据集生成较大的综合数据集

r - 带有 setpmax 和阈值的神经网络包中出现错误

python - NN 的 DNA 数据输入,一种热编码

scala - Spark:加入数组

python - 将 DataFrame show() 的结果保存到 pyspark 中的字符串

java - 如何在 Java 中将 Spark DataFrame 转换为 POJO 的 RDD