我使用了tensorflow一段时间,我已经看到它通过在GPU上训练一个大的神经网络来达到良好的时间性能。现在,出于某种动机,我有一个类似于以下的代码:
neural_networks = [first_nn]
for i in range(N):
new_nn, new_parameters = GetNewNN()
previous_model = sum(neural_networks)
optimizer = tf.train.AdamOptimizer(learning_rate).\
(tf.reduce_mean(
tf.square(target - previous_model - new_nn)),
var_list=new_parameters )
for t in range(T):
session.run(optimizer, feed_dict={target:y})
neural_networks.append(new_nn)
每次添加神经网络时,计算变得非常慢,甚至认为每个new_nn都是具有10个神经元的单层神经网络!在我的计算机上运行和训练1000个神经元的神经网络然后运行几个神经网络与十个神经元(并且每次只训练其中一个神经网络)的速度更快。
我尝试以几种不同的方式优化代码,但没有获得任何性能优势。如何编写更高效的代码?