import tensorflow_addons as tfa
#需要安装的库
opt = tf.keras.optimizers.Adam(1e-3)
#先创建优化器
opt = tfa.optimizers.MovingAverage(opt)
#在优化器的基础上加入MovingAverage
model_checkpoint_callback = keras.callbacks.ModelCheckpoint("./log/ep{epoch:03d}-{loss:03f}.h5", save_best_only=False, save_weights_only=True)
#普通权重系数保存方法(h5文件)
model_movingAvg_checkpoint_callback = tfa.callbacks.AverageModelCheckpoint(True, "./log/movingAvg_ep{epoch:03d}-{loss:03f}.h5", save_best_only=False, save_weights_only=True)
#MovingAverage权重系数文件的保存方法(h5文件)
model.fit(x, y, epochs=Epochs, batch_size=batch_size, validation_split=validation_split, shuffle=True, callbacks=[model_checkpoint_callback, model_movingAvg_checkpoint_callback])
#在训练时的参数callback里面添加MovingAverage的相关信息。
#MovingAverage系数文件一般是测试的时候用,不会在训练时使用,而且需要在测试的时候比较一下原本的系数权重和MovingAverage系数哪个更好,所以需要把原本的系数权重文件和MovingAverage系数文件一起保存。
model.load_weights("./log/movingAvg_ep005-0.40000.h5")
#和普通权重系数一样的加载方法