私が取り組んでいるプロジェクトの一部として、2m
ベクトル間の平均二乗誤差を計算する必要があります。行列乗算を実行中にメモリエラーが発生する
は基本的に私二つの行列x
とxhat
、両方がn
によってサイズm
であり、私が興味ベクトルは、これらのベクトルの行です。
私はそれが正常に機能しています。このコード
def cost(x, xhat): #mean squared error between x the data and xhat the output of the machine
return (1.0/(2 * m)) * np.trace(np.dot(x-xhat,(x-xhat).T))
とMSEを計算し、この式が正しいです。
私の特定のケースでは、私のm
とn
が非常に大きいという問題があります。具体的には、m = 60000
およびn = 785
である。だから私のコードを実行し、この関数を入力すると、私はメモリエラーが発生します。
MSEを計算する良い方法はありますか?私はむしろループを避け、行列の乗算に大きく傾くが、行列の乗算はここでは非常に無駄に思える。たぶん私は気づいていない気がしますか?
あなたは方法がここで提案しようとすることができます:http:// stackoverflowの。 com/questions/16774849/mean-squared-error-in-numpy – jerry
2つの配列を点滅させてからトレースを使用するだけでは、 – Julius