2016-05-08 6 views
0

私は非常に単純な問題があります。私はジュリアにおける機械学習アルゴリズムに取り組んで@parrellelループの最後に、これらの値をチェックして壊したいのですなぜ、不変の型で不平を言ったSharedArrayのSetIndexがありますか?

# An internal type used only by the train function for caching between epochs. 
immutable Residual 
    value::Float32 
    curr_error::Float32 
    prev_error::Float32 
end 

:私は次のように定義された型を持っています。これを実現するために、私はそう定義されたSharedArraysを使用しています。

ここで、ループ内で、簡単な更新手順で残差を更新したいと考えています。それは不変なので、私は新しいResidualオブジェクトを作成し、それをSharedArrayに埋めなければならないと仮定します。

residual[j] = Residual(residual.value, -user_feature * item_feature + residual.value, residual.curr_error) 

ただし、コードを実行するたびに次のエラーが発生します。

LoadError: MethodError: `setindex!` has no method matching setindex!(::Residual, ::Residual, ::Int64) 

私は私が間違っているの本当にわからない、私はそれがタイピングとは何かを持っていると仮定しますか?それともジュリアのSharedArraysを完全に誤解していますか?どんな助けもありがとう。

答えて

2

まあ、これは恥ずかしかったです、私は配列の中にsを残していましたので、不変型のインデックスを設定しようとしました...他の誰かが同じミスを犯した場合には、

関連する問題