1) 如果历元是偶数,则使用反向传播更改神经网络的权重
2) 如果历元为奇数,则仅使用
update_weights_with_custom_function()
因此,冻结网络。
下面是实现此功能的代码的简化部分(请注意
epochs=1
):
for epoch in range(nb_epoch):
if epoch % 2 == 0:
model.trainable = True # Unfreeze the model
else:
model.trainable = False # Freeze the model
model.compile(optimizer=optim, loss=gaussian_loss, metrics=['accuracy'])
hist = model.fit(X_train, Y_train,
batch_size=batch_size,
epochs=1,
shuffle=True,
verbose=1,
callbacks=[tbCallBack, csv_epochs, early_stop],
validation_data=(X_val, Y_val))
if epoch % 2 == 1:
update_weights_with_custom_function()
问题:
几年后,凯拉斯抛出了一个
ResourceExhaustedError
但只有tensorflow,
没有theano
. 似乎是循环
compile()
正在创建模型而不发布它们。
因此,我应该怎么做?我知道
K.clear_session()
see
)这给了我一些问题
load_model()
在我的情况下,这不是现成的。
我也愿意采用其他方法来实现我试图实现的目标(即根据历元的奇偶性冻结神经网络模型)。
tensorflow后端的keras正在抛出一个
ResourceExhausterRor
因为我在绕圈子
编译()
.