【发布时间】:2017-12-06 05:08:34
【问题描述】:
我使用带有 tensorflow 后端的 Keras。
Keras 是否仍会为我设置的层计算梯度trainable = False?
当我修复大部分层时,我没有观察到深度网络(如 Resnet-50)的加速。看起来固定层的梯度仍在计算中,但它们的值乘以 0。谁能确定这是真的吗?
这是一个小型网络的示例,我在其中修复了第一层。
import numpy as np
import keras
import keras.applications.resnet50
x = keras.layers.Input(shape=(5,))
y = keras.layers.Dense(5)(x)
z = keras.layers.Dense(5)(y)
model = keras.models.Model(x, z)
for layer in model.layers[:2]:
layer.trainable = False
model.compile(optimizer='rmsprop', loss='mse')
print model.summary()
X = np.random.rand(100, 5)
model.fit(X, X, epochs=100)
【问题讨论】:
标签: tensorflow keras keras-layer