亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何序列化keras模型的類對象

如何序列化keras模型的類對象

慕勒3428872 2022-10-25 15:55:50
我試圖保存 keras 完整模型,但遇到了這個錯誤Traceback (most recent call last):  File "d:/Workspace/College/Semester 8/Tugas Akhir/Keras-RFCN-master/Keras-RFCN-master/testing.py", line 133, in <module>    main()  File "d:/Workspace/College/Semester 8/Tugas Akhir/Keras-RFCN-master/Keras-RFCN-master/testing.py", line 96, in main    model.save("D:/weight.h5")  File "d:\Workspace\College\Semester 8\Tugas Akhir\Keras-RFCN-master\Keras-RFCN-master\KerasRFCN\Model\Model.py", line 560, in save    self.model.save(save_path)  File "C:\Users\kevin\anaconda3\envs\tf-gpu\lib\site-packages\keras\engine\network.py", line 1139, in save    save_model(self, filepath, overwrite, include_optimizer)  File "C:\Users\kevin\anaconda3\envs\tf-gpu\lib\site-packages\keras\engine\saving.py", line 415, in save_wrapper    save_function(obj, filepath, overwrite, *args, **kwargs)  File "C:\Users\kevin\anaconda3\envs\tf-gpu\lib\site-packages\keras\engine\saving.py", line 507, in save_model    _serialize_model(model, h5dict, include_optimizer)  File "C:\Users\kevin\anaconda3\envs\tf-gpu\lib\site-packages\keras\engine\saving.py", line 101, in _serialize_model    model_config = json.dumps(model_config, default=get_json_type)  File "C:\Users\kevin\anaconda3\envs\tf-gpu\lib\json\__init__.py", line 238, in dumps    **kw).encode(obj)  File "C:\Users\kevin\anaconda3\envs\tf-gpu\lib\json\encoder.py", line 199, in encode    chunks = self.iterencode(o, _one_shot=True)  File "C:\Users\kevin\anaconda3\envs\tf-gpu\lib\json\encoder.py", line 257, in iterencode    return _iterencode(o, 0)  File "C:\Users\kevin\anaconda3\envs\tf-gpu\lib\site-packages\keras\engine\saving.py", line 91, in get_json_type    raise TypeError('Not JSON Serializable: %s' % (obj,))TypeError: Not JSON Serializable: <KerasRFCN.Config.Config object at 0x0000029B0A3BD248>通過該錯誤,很明顯 JSON 無法序列化我的類,該類返回一個名為 config 的對象。那么如何確保 Keras 可以序列化我的配置..??我認為在init中定義的所有定義都可以序列化。我真的是 python、Keras 和 TensorFlow 的新手。
查看完整描述

1 回答

?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

如果您使用的是子類模型,那么在定義模型之后,您需要在一些數據上調用模型,例如model.predict(x)這將創建權重并使模型能夠使用model.save或'model.save_weights andload_weights`保存

首先,一個從未使用過的子類模型是無法保存的。

這是因為需要在某些數據上調用子類模型才能創建其權重。

在調用模型之前,它不知道它應該期望的輸入數據的形狀和 dtype,因此無法創建其權重變量。

有關該方法的更多詳細信息,請參見此處的示例


查看完整回答
反對 回復 2022-10-25
  • 1 回答
  • 0 關注
  • 95 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號