استفاده از مدل کراس برای inference در c++ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

استفاده از مدل کراس برای inference در c++

0 امتیاز
سلام .

من مدل کراس را با پسوند .h ساختم چطور می تونم فایل .pb فریز شده جهت inference سمت c++ بسازم.
سوال شده آذر 28, 1397  بوسیله ی علی احمدی کنارکی (امتیاز 30)   5 7 8

1 پاسخ

0 امتیاز

سلام.

برای اینکار ابتدا مدل hdf5 را با کراس لود کنید و سپس با استفاده از متد save کلاس saver مجدد مدل را ذخیره کنید تا فایل checkpoint و فایل meta data ساخته شه 

from keras import backend as K
import tensorflow as tf
print(model.output.op.name)
saver = tf.train.Saver()
saver.save(K.get_session(), '/tmp/keras_model.ckpt')

سپس با این دو فایل می تونید فایل فریز شده را ایجاد کنید.

python tensorflow/python/tools/freeze_graph.py \
--input_meta_graph=/tmp/keras_model.ckpt.meta \
--input_checkpoint=/tmp/keras_model.ckpt \
--output_graph=/tmp/keras_frozen.pb \
--output_node_names="<output_node_name_printed_in_step_1>" \
--input_binary=true

 

پاسخ داده شده آذر 28, 1397 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
دوباره نشان داده شد آذر 30, 1397 بوسیله ی مصطفی ساتکی
وقتی که فایل pb. تولید شد نیازی نیست ساختار مدل مون را داشته باشیم؟ یعنی ساختار ترتیب و اسم لایه های مدل؟
این فایل pb. چه فرقی با checkpoint , metadataداره ؟ اصلا چرا از اون فایل ها برای inference استفاده نمشود؟
...