私はアーキテクチャ1024, 512, 256, 1
(入力層には1024
単位、出力層には1
単位などがあります)を持つニューラルネットワークを持っています。 scipy.optimize
の最適化アルゴリズムの1つを使用してこのネットワークを訓練したいと思います。多くの重みを持つネットワークのメモリ問題を扱う
問題は、これらのアルゴリズムでは、関数パラメータが1つのベクトルで指定されることが必要であるということです。これは私の場合、私は長さのベクトルですべての重みをアンロールしなければならない、ということ
1024*512 + 512*256 + 256*1 = 655616
を意味します(fmin_bfgs
のような)いくつかのアルゴリズムは、単位行列を使用する必要があるので、彼らは
I = numpy.eye(655616)
のように電話をかけます非常に驚くことではないが、
MemoryError
を生成する。
。 scipy.optimize
のアルゴリズムを私のニーズに合わせるのに足りない、すべての重みを1つのベクトルに展開する必要がないようにする方法はありますか?
うわー、それはフィットするには多くの重さです。 (+1) – NPE
@NPE私は自分が何をしているのか分かりません。私は32x32サイズの画像を訓練しています。画像をさらに小さくする必要がありますか? –
次に、画像のサイズを '16x16 'に縮小し、アーキテクチャ' 256,128,1'を使用して、私はまだ長さ '32896'の重みベクトルを展開しています。 –