我有功能,我必须反转列表。 是否有可能重写此函数以使用yield返回生成器?没有在列表中存储增量?
def back_propogation(self,activations,output):
error = output - activations[-1]
deltas = [error * math_utils.sigmoid_prime(activations[-1])]
for l in range(len(activations) - 2, 0, -1):
deltas.append(deltas[-1].dot(self.weights[l].T)*self.some_function(activations[l]))
deltas.reverse()
return deltas
答案 0 :(得分:0)
您只需yield
出现反向列表中的项目:
for item in reversed(deltas):
yield item
答案 1 :(得分:0)
for i in xrange(len(deltas) - 1, -1, -1):
yield deltas[i]
这至少可以节省你对列表的反转。