Преобразовать модель тензорного потока в Keras hdf5

#tensorflow #keras #hdf5 #tf.keras

#tensorflow #keras #hdf5 #tf.keras

Вопрос:

Привет, я новичок в tensorflow и keras. Мне интересно, есть ли какой-либо способ преобразовать мою модель tensorflow, которая содержит четыре файла:

  • контрольная точка
  • Модель
  • модель-18540.данные-00000-из-00001
  • модель-18540.index

Есть ли какой-либо способ преобразовать эти четыре файла в один формат keras в hdf5

Ответ №1:

В настоящее время в Tensorflow или Keras нет прямой встроенной поддержки для преобразования замороженной модели или файла контрольной точки в формат hdf5.

Но вы можете сделать это таким образом.Файл ckpt может быть сохранен TF с помощью:

 saver = tf.train.Saver()
saver.save(sess, checkpoint_name)
 

и для загрузки контрольной точки в Keras вам нужен класс обратного вызова следующим образом:

 class RestoreCkptCallback(keras.callbacks.Callback):
    def __init__(self, pretrained_file):
        self.pretrained_file = pretrained_file
        self.sess = keras.backend.get_session()
        self.saver = tf.train.Saver()
    def on_train_begin(self, logs=None):
        if self.pretrian_model_path:
            self.saver.restore(self.sess, self.pretrian_model_path)
            print('load weights: OK.')
 

Затем в вашем скрипте keras:

  model.compile(loss='categorical_crossentropy', optimizer='rmsprop')
 restore_ckpt_callback = RestoreCkptCallback(pretrian_model_path='./XXXX.ckpt') 
 model.fit(x_train, y_train, batch_size=128, epochs=20, callbacks=[restore_ckpt_callback])