为了账号安全,请及时绑定邮箱和手机立即绑定

有没有办法将自定义的 keras 模型放入 python 类方法中?

有没有办法将自定义的 keras 模型放入 python 类方法中?

aluckdog 2022-05-24 10:47:35
我正在尝试使用类方法在 python 中构建一个深度神经网络。((其背后的主要思想是稍后尝试自定义损失函数))我试图在定义神经网络结构的函数中使用 Keras,但它似乎不起作用。# create a class toclass PGNN(keras.Sequential):    def __init__(self,x,y):        super().__init__()        X = np.concatenate([x,y], axis=1)        self.X = X        self.x = X[:,0:1]        self.y = X[:,1:2]    def build_model_u(self):        model_u = models.Sequential        model_u.add(layers.Dense(64, activation='tanh', input_shape= 1000))        model_u.add(layers.Dense(32, activation='tanh'))        model_u.add(layers.Dense(16, activation='tanh'))        model_u.add(layers.Dense(8, activation='tanh'))        model_u.add(layers.Dense(4, activation='tanh'))        model_u.add(layers.Dense(1))        model_u.compile(optimizer='Adam', loss='mse', metrics=['mae'])    def train(self, x_train, y_train):        model = build_model_u(self)        model.fit()    def predict(self, x_test):        model.predict(x_test)    def validation(self, x_test, y_test):        model.evaluate(x_test,y_test, verbose=2)我希望模型在我调用 model.fit(x_train,y_train) 时开始训练,但我总是收到错误“未定义 build_model_u”model = build_model_u(self)NameError:名称“build_model_u”未定义
查看完整描述

2 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

您必须调用类似的方法


model = build_model_u

model.fit(x_train,y_train)

像这样调用函数


model = build_model_u()

model.fit(x_train,y_train)

你也可以删除输出变量


output= model_u.add(layers.Dense(3))

并保持这种方式


model_u.add(layers.Dense(3))


查看完整回答
反对 回复 2022-05-24
?
守着一只汪

TA贡献1872条经验 获得超3个赞

是的,有办法。您必须使用 keras.Model 和 overtire 调用方法扩展您的自定义模型类,然后您可以从您自己的自定义类调用 fit 方法。您可以遵循以下 Keras 文档。 https://keras.io/models/about-keras-models/#model-subclassing


查看完整回答
反对 回复 2022-05-24
  • 2 回答
  • 0 关注
  • 108 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信