Javaでマルチスレッドを使用して並列計算を行っています。May のデータ構造は HashMap です。私のアルゴリズムには、除算と平方根がありません。それは確率的勾配降下です.それでも私は得てNaNいます.ハッシュマップに複数のアクセス、読み書きがあるかどうかを知りたいのですが、それは未定義の問題を引き起こしますか? はいの場合、どうすればそれを取り除くことができますか?
[編集]
for(Map.Entry<Integer, ArrayList<Double>>entry: Matrix.entrySet()){
sum = sum + Math.exp(getScore(contextFeatureVector,entry.getValue()));
}
getScoreメソッドは内積を計算します。戻り値はinfinityです。
[編集2]
この上記の方法でMatrixは、次のとおりです。
Map<Integer,ArrayList<Double>> Matrix = new ConcurrentHashMap<Integer,ArrayList<Double>>();
私はまだ取得していNaNます.それは、私が値にアクセスしている方法が原因です. 誰かが明確な直感で答えてくれませんか?