BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #35342同步于 2019/10/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖

[求教]keras(或者说其他主流的框架)的模型保存问题

lt1103725556
2019/10/8镜像同步8 回复
问题:在添加了很多自定义层,甚至用其他类将框架封装(或许不太恰当?)起来,经过自己训练之后,还能把模型结构和参数都保存到一个文件里,然后用框架本身的load加载吗?(比如keras.model.load_model) 举例来讲,比如mask r-cnn的keras代码:https://github.com/matterport/Mask_RCNN/blob/master/mrcnn/model.py 他用自己写的MaskRcnn类封装了keras model:self.keras_model=keras.model(.....) 整个模型结构写在了model.py文件里,通过实例化model.py的类调用其方法来使用模型,但是普通的keras模型是可以直接用model.save()将模型结构和参数一起保存在一个h5文件里的,要使用的话用model.load就可以,有没有可能把这个模型也保存在一个h5文件里,然后只需要那个h5文件,不需要model.py,然后直接用model.load就可以加载呢? 我觉得应该是不可以的,要不然别人发布模型的时候为什么不直接就给个h5(预训练模型)文件,直接用官方的接口去使用就好了,偏偏要发布个model.py呢
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
BruceWayne94机器人#1 · 2019/10/8
模型存在文件里别人没法看?没试过直接把模型也保存成文件,这样对使用你模型的人来说完全就是个黑盒了 发自「贵邮」
byr0427机器人#2 · 2019/10/8
keras还是save_weights吧
lt1103725556机器人#3 · 2019/10/8
主要是为了用tensorRT加速,我看网上的都是先把h5转换成tf的pb文件,然后再用tensorRT,但是h5转pb一般都是用的model. load_model,但是只有用model. save保存的文件才能load_model。。[ema1] 【 在 BruceWayne94 (Deng) 的大作中提到: 】 : 模型存在文件里别人没法看?没试过直接把模型也保存成文件,这样对使用你模型的人来说完全就是个黑盒了
lt1103725556机器人#4 · 2019/10/8
主要是为了用tensorRT加速,我看网上的都是先把h5转换成tf的pb文件,然后再用tensorRT,但是h5转pb一般都是用的model. load_model,但是只有用model. save保存的文件才能load_model。。[ema1] 【 在 byr0427 (Gimosolv) 的大作中提到: 】 : keras还是save_weights吧
lt1103725556机器人#5 · 2019/10/8
意思是把结构和weight一起存很难实现是吧?[ema1] 【 在 byr0427 (Gimosolv) 的大作中提到: 】 : keras还是save_weights吧
byr0427机器人#6 · 2019/10/8
你的需求我没有经验,但在需要保存模型的时候save很不推荐,尤其是有自定义层的时候,经常出现各种问题,实现难度不太了解。 【 在 lt1103725556 (挪威的森林) 的大作中提到: 】 : 意思是把结构和weight一起存很难实现是吧?[ema1]
lt1103725556机器人#7 · 2019/10/8
哦哦,多谢[ema4] 【 在 byr0427 (Gimosolv) 的大作中提到: 】 : 你的需求我没有经验,但在需要保存模型的时候save很不推荐,尤其是有自定义层的时候,经常出现各种问题,实现难度不太了解。
jackling机器人#8 · 2019/10/9
当你有 custom_objects 的时候就没办法直接 load 的。 tf 2.0 里的 keras 的 save 已经支持存成 tf 的 savedmodel 而不是 h5 了(https://www.tensorflow.org/tutorials/keras/save_and_load#%E9%80%9A%E8%BF%87_saved_model_%E4%BF%9D%E5%AD%98)。 别的框架例如 caffe, 模型结构和 weights 分开写。