Перейти к содержимому
Compvision.ru
Pechkin80

Преобразование модели из hdf5(Keras) в protobuf(Tensorflow)

Recommended Posts

Добрый день столкнулся с проблемой при попытки преобразования моделей

Ошибка не гуглиться и моих скромных знаний явно не хватает чтобы понять в чём дело.

Вот собственно скрипт (юпитер ноутбук):

import tensorflow as tf
from tensorflow.python.tools import freeze_graph
from tensorflow.python.tools import optimize_for_inference_lib
from keras.models import load_model 
from keras import backend as K
from keras.losses import binary_crossentropy

SMOOTH = 1.

def dice_coef(y_true, y_pred):
    global SMOOTH
    y_true_f = K.flatten(y_true)
    y_pred_f = K.flatten(y_pred)
    intersection = K.sum(y_true_f * y_pred_f)
    return (2. * intersection + SMOOTH) / (K.sum(y_true_f) + K.sum(y_pred_f) + SMOOTH)

def bce_dice_loss(y_true, y_pred):
    return 0.5 * binary_crossentropy(y_true, y_pred) - dice_coef(y_true, y_pred)



custom_objects = {'bce_dice_loss': bce_dice_loss, 'dice_coef':dice_coef}
model = load_model('road_lane.hdf5', custom_objects=custom_objects)

export_path = './out'

with tf.keras.backend.get_session() as sess:
    tf.saved_model.simple_save(
        sess,
        export_path,
        inputs={'input': model.input},
        outputs={'output': model.output})
Цитата
Цитата

 

 

Ошибка вот такая:

 

Цитата

FailedPreconditionError: Attempting to use uninitialized value training/Adam/Variable_50 [[{{node training/Adam/Variable_50}}]] [[{{node training/Adam/Variable_66}}]] During handling of the above exception, another exception occurred:

В чём может быть дело ?

И я заранее предвижу ещё одну ошибку так как версия protobuf для tensorflow из pip и для плюсов разная.

converter_h5_to_pb2.ipynb

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проблема вроде решена:

init_op = tf.initialize_all_variables()
with tf.keras.backend.get_session() as sess:
    sess.run(init_op)
    tf.saved_model.simple_save(
        sess,
        export_path,
        inputs={'input': model.input},
        outputs={'output': model.output})
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скрипт заморозки модельки, на всякий случай. Keras2pb.py

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 9/1/2019 at 11:06, Smorodov сказал:

Скрипт заморозки модельки, на всякий случай. Keras2pb.py

Ага спасибо, только щас про него вспомнил. Он как раз с заморозкой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×