#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])