有什么有效的方法可以优化这个神经网络吗。
map = {}
for batch in xrange(1,100,1):
for lr in np.arange(0.00001,1,0.0000001):
for decay in np.arange(0.0000001,1,0.0000001):
for momentum in np.arange(0.001,1,0.01):
print 'batch_' + str(batch) + '_lr_' + str(lr) + '_decay_' + str(decay) + '_momentum_' + str(momentum)
result = model(batch,lr,decay,momentum)
print result
map['batch_' + str(batch) + '_lr_' + str(lr) + '_decay_' + str(decay) + '_momentum_' + str(momentum)] = result
np.save('sgd_opt.npy', map)目前正在使用多个for循环来完成--难道没有其他有效的方法来做到这一点吗?
发布于 2017-05-04 07:05:03
测试更少的组合。使用np.logspace而不是np.arange。
for lr in np.logspace(1E-5, 1, 6): # Tests 1E-5, 1E-4, ..., 1在0.00012和0.00013之间,学习率可能没有太大的差别。你不需要测试所有这些。
如果你想测试6%以上的学习率,那就继续吧。这会给你一个很好的扩展,你应该对你的衰变和动量做同样的事情。您可以测试6个学习速率、6个衰变和3个瞬间(总共108个组合),并可能从您的原始代码使用的数百万个步骤中获得相同的好处。
https://stackoverflow.com/questions/43775217
复制相似问题