18.4_模式的切换

18.4 模式的切换

这样就实现了启用反向传播和禁用反向传播的机制。使用这个机制,我们可以按照下面的方式切换模式。

Config enable_backprop = True  
x = Variable(np.ones((100, 100, 100)))  
y = square(square(square(x)))  
y *= y*y*y

上面的代码特意准备了一个大的多维数组。它是形状为 (100,100,100)(100, 100, 100) 的张量。这里对这个张量连续应用了3次square函数(对每个元素进行平方)。如果Configenable_backprop为True,则保留中间计算的结果(至少保留到反向传播结束),这样相应容量的内存就会被占用。反之,如果Config enable backprop为False,中间计算的结果就会在使用后被立即删除(准确来说,对

象在没有被其他对象引用时,就会从内存中被删除)。

由此便实现了反向传播模式的切换机制。下面我们采用更简单的方式来切换模式。