Neural network Apache SystemML DML没有';t函数中不允许有多个返回值

Neural network Apache SystemML DML没有';t函数中不允许有多个返回值,neural-network,deep-learning,systemml,Neural Network,Deep Learning,Systemml,我正试图在SystemlML的DML中构建一个简单的hello world神经网络,但却无法从UDF函数返回多个值。我从它成功运行的地方得到了启发,但我无法理解其中的区别: 根据Berthold的要求进行编辑(完整代码): 如果我删除 matrix[double] z3 它可以工作,否则我会得到: 原因:org.apache.sysml.parser.LanguageException:错误:null-- 第22行第0列--赋值语句不能返回多个 价值观 有什么想法吗?SystemML确实支持函

我正试图在SystemlML的DML中构建一个简单的hello world神经网络,但却无法从UDF函数返回多个值。我从它成功运行的地方得到了启发,但我无法理解其中的区别:

根据Berthold的要求进行编辑(完整代码):

如果我删除

matrix[double] z3
它可以工作,否则我会得到:

原因:org.apache.sysml.parser.LanguageException:错误:null-- 第22行第0列--赋值语句不能返回多个 价值观


有什么想法吗?

SystemML确实支持函数中的多个返回值。看

下面的Python示例返回2个矩阵

DMLstr = """
M1M2 = function( matrix[double] M) 
           return (matrix[double] M1, 
                   matrix[double] M2) {
    M1 = M + 1
    M2 = M + 2
}

X=matrix("3 5 5 1 10 2", rows=3, cols=2) 
[M1, M2] = M1M2 (X)
"""

[M1, M2] = ml.execute(dml(DMLstr).output('M1', 'M2')).get('M1','M2')

print M1.toNumPy()
print M2.toNumPy()
您的代码片段没有显示“前馈”的调用。您可以发布吗?

当您返回到输出时,您对“前馈”的调用不正确。换成这样:

[Yhat1, Yhat2]=feedForward(X,W1,W2)

调用是错误的[z3,Yhat]=前馈(X,W1,W2)有效,但我提出了Yhat=前馈(X,W1,W2)
[Yhat1, Yhat2]=feedForward(X,W1,W2)