Я просматривал библиотеку вероятностей Tensorflow и пытался изменить пример в примере байесовской сети , надеясь, что смогу сохранить контрольные точки и затем восстановить их.Сначала я попытался использовать tf.train.Checkpoint, но, хотя я не получал никаких ошибок ни при сохранении, ни при восстановлении, похоже, не перезапускал тренировку с предыдущей контрольной точки, поскольку точность была совершенно другим значением.Затем я попытался использовать tf.keras.models.model.save, который снова сохраняет файл, но при попытке восстановить я получаю ошибку: ValueError: Неизвестный слой: Conv2DFlipout, когда он пытается десериализовать слой.Если честно, я не знаю, куда идти сейчас, если кто-то может указать мне правильное направление.Спасибо!Джованна
Это то, что я до сих пор должен восстановить:
if FLAGS.architecture == "resnet":
model_fn = bayesian_resnet.bayesian_resnet
else:
model_fn = bayesian_vgg.bayesian_vgg
model = model_fn(
IMAGE_SHAPE,
num_classes=4,
kernel_posterior_scale_mean=FLAGS.kernel_posterior_scale_mean,
kernel_posterior_scale_constraint=FLAGS.kernel_posterior_scale_constraint)
print(images)
#check if saved checkpoint exists
exists = os.path.isfile(FLAGS.model_dir+"checkpoint.hdf5")
if exists:
model = tf.keras.models.load_model(FLAGS.model_dir+"checkpoint.hdf5")
logits = model(images)
labels_distribution = tfd.Categorical(logits=logits)
# Perform KL annealing. The optimal number of annealing steps
# depends on the dataset and architecture.
t = tf.Variable(0.0)
#kl_regularizer = t / (FLAGS.kl_annealing * len(x_train) / FLAGS.batch_size)
...