Machine learning 基于通量模型的LSTM全序列建模

Machine learning 基于通量模型的LSTM全序列建模,machine-learning,julia,lstm,recurrent-neural-network,flux-machine-learning,Machine Learning,Julia,Lstm,Recurrent Neural Network,Flux Machine Learning,我试图训练一个LSTM,使其基于x序列(而不仅仅是最后一个项或分类器)对完整序列y进行建模。在下面的代码中,虽然损失函数起作用,但培训不起作用。看来dot形式主义不适合火车?你知道我该怎么做吗?在凯拉斯,它是如此简单。。。。 提前感谢,, 马库斯 错误消息 好吧,按照弗雷德里克的方法,下面的损失似乎是可行的,但坦率地说,我不太喜欢它,所以我仍然想知道是否有更优雅/惯用/高效的(?)解决方案 function loss(x,y) yhat=model.(x) s=0 fo

我试图训练一个LSTM,使其基于x序列(而不仅仅是最后一个项或分类器)对完整序列y进行建模。在下面的代码中,虽然损失函数起作用,但培训不起作用。看来dot形式主义不适合火车?你知道我该怎么做吗?在凯拉斯,它是如此简单。。。。 提前感谢,, 马库斯

错误消息
好吧,按照弗雷德里克的方法,下面的损失似乎是可行的,但坦率地说,我不太喜欢它,所以我仍然想知道是否有更优雅/惯用/高效的(?)解决方案

function loss(x,y) 
    yhat=model.(x)
    s=0
    for i in 1:length(yhat)
        s+=(yhat[i][1] - y[i][1])^2
    end

    s/=length(yhat)
    s    

end

好吧,按照弗雷德里克的方法,下面的损失似乎是可行的,但坦率地说,我不太喜欢它,所以我仍然想知道是否有更优雅/惯用/高效的(?)解决方案

function loss(x,y) 
    yhat=model.(x)
    s=0
    for i in 1:length(yhat)
        s+=(yhat[i][1] - y[i][1])^2
    end

    s/=length(yhat)
    s    

end

请查看变异数组。

请查看变异数组。

问题可能是collect在内部变异数组,flux的ad后端Zygote.jl不支持这种情况。看看你是否可以不使用collect来写损失。例如,
sum(x->abs2(-(x…)、zip(model.(x),y))
谢谢您的提示!调用loss时,我得到
MethodError:没有方法匹配-(::数组{Float32,1},::Float32)
。问题是
model.(x)
返回一个长度为1的数组数组,不知何故我需要将其解包以进行数学运算。还有别的办法吗?对不起,我对Julia来说是新手。试图用
yhat=[]手动解包;对于模型(x)中的e;追加(yhat,e[1]);结束
但再次出现变异错误问题可能是collect在内部变异了一个数组,flux的ad后端zyote.jl不支持该数组。看看你是否可以不使用collect来写损失。例如,
sum(x->abs2(-(x…)、zip(model.(x),y))
谢谢您的提示!调用loss时,我得到
MethodError:没有方法匹配-(::数组{Float32,1},::Float32)
。问题是
model.(x)
返回一个长度为1的数组数组,不知何故我需要将其解包以进行数学运算。还有别的办法吗?对不起,我对Julia来说是新手。试图用
yhat=[]手动解包;对于模型(x)中的e;追加(yhat,e[1]);结束
,然后再次获取变异错误
function loss(x,y) 
    yhat=model.(x)
    s=0
    for i in 1:length(yhat)
        s+=(yhat[i][1] - y[i][1])^2
    end

    s/=length(yhat)
    s    

end