我训练了两个模型以使其合体, 当我尝试使用此代码加载它们时:
from tensorflow.keras.models import load_model
models=[]
modelTemp=load_model('models/full.h5')
modelTemp.name = "inception1"
models.append(modelTemp)
发生错误:
AttributeError: Can't set the attribute "name", likely because it conflicts with an existing read-only @property of the object. Please choose a different name.
完整的错误消息:
---------------------------------------------------------------------------
AttributeError跟踪(最近一次通话) setattr 中的/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/base_layer.py(自身,名称,值) 1968年尝试: -> 1969超级(tracking.AutoTrackable,自我)。 setattr (名称,值) 1970年,除了AttributeError:
AttributeError:无法设置属性
在处理上述异常期间,发生了另一个异常:
AttributeError跟踪(最近一次通话) 2帧 setattr 中的/usr/local/lib/python3.6/dist-packages/tensorflow/python/keras/engine/base_layer.py(自身,名称,值) 1972年(“无法设置属性“ {}”,可能是因为它与“ 1973'对象的现有只读@property。请选择一个 -> 1974'不同的名称。'。format(名称)) 1975年回归 1976
AttributeError:无法设置属性“名称”,可能是因为它与对象的现有只读@property冲突。请选择其他名称。
答案 0 :(得分:2)
根据this question here on StackOverflow 您需要使用:
modelTemp._name = 'inception'
答案 1 :(得分:-1)
我在How to rename Pre-Trained model ? ValueError 'Trained Model' is not a valid scope name
回答了相同的话题解决方案是:
model = load_model(r"C:\Master\Learning\Agri_Intelligence\Models\Model.h5")
model._name = "New_Model_Name"
model.save(r"C:\Master\Learning\Agri_Intelligence\Models\New_Model.h5")