Keras Tuner 错误:搜索期间使用的所有回调都应该是可深度复制的

问题描述

我在对 Keras Tuner 超参数优化对象应用任何回调时遇到困难。这是我运行的代码

from keras.callbacks import TensorBoard,EarlyStopping
%load_ext tensorboard

BATCH_SIZE = 32

time_stamp = time.time()
tensorboard = TensorBoard(log_dir = " graphs/{}".format(time_stamp))
checkpoint = ModelCheckpoint(filepath = r"D:\Uni work\...\CNN.hdf5",monitor = 'val_accuracy',verbose = 1,save_best_only = True )
early_stopping = EarlyStopping( monitor="val_loss",patience= 3,verbose=2)

tuner = Bayesianoptimization(build_model,objective = "val_accuracy",max_trials = 30,num_initial_points=2,project_name ="audio_classifier")

tuner.search(x = train_X,y=y_cat_encoded,epochs=35,callbacks =  early_stopping,batch_size = BATCH_SIZE,validation_data = (validation_X,y_validation_cat_encoded))

虽然我想应用张量板和检查点回调,但它只是通过传递提前停止回调而失败。我收到以下错误

C:\Anaconda\envs\test\lib\site-packages\kerastuner\engine\tuner.py in _deepcopy_callbacks(self,callbacks)
    277             callbacks = copy.deepcopy(callbacks)
    278         except:
--> 279             raise ValueError(
    280                 'All callbacks used during a search '
    281                 'should be deep-copyable (since they are '

ValueError: All callbacks used during a search should be deep-copyable (since they are reused across trials). It is not possible to do `copy.deepcopy(<tensorflow.python.keras.callbacks.EarlyStopping object at 0x000001802D138100>)

我不熟悉“可深度复制”这个术语以及它在错误代码方面的含义。有人熟悉如何解决这个问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)