我有一个具有架构的神经网络1024, 512, 256, 1
(输入层有1024
单元,输出层有1
单元等)。我想使用 中的一种优化算法来训练这个网络scipy.optimize
。
问题是这些算法期望函数参数在一个向量中给出。这意味着,就我而言,我必须将所有权重展开为长度向量
1024*512 + 512*256 + 256*1 = 655616
一些算法(如fmin_bfgs
)需要使用恒等矩阵,因此它们会调用
I = numpy.eye(655616)
毫不奇怪,它会产生一个MemoryError
. 我有什么办法可以避免将所有权重展开到一个向量中,scipy.optimize
而不是根据自己的需要调整算法?