【发布时间】:2023-03-06 15:43:01
【问题描述】:
所以,我可以通过继承 Keras 层和模型来创建我的模型,如下所示:
class CNN(tf.keras.models.Model):
def __init__(self, **kwargs):
super(CNN, self).__init__(**kwargs)
self.l1 = tf.keras.layers.Conv2D(64, (4, 4), padding='same')
self.l2 = tf.keras.layers.Dense(10, activation='softmax')
def call(self, ip):
x = self.l1(ip)
op = self.l2(x)
return op
这与
有何不同mymodel = Model(input = inputs, output= outputs)
我的意思是,我知道一些差异,例如上面的模型具有属性 mymodel.input 但是当我为通过子类化定义的模型请求此属性时,它会引发此错误:
AttributeError: Layer cnn is not connected, no input to return.
这只是一个区别,那么,是什么让它们不同,以及如何充实第一个模型以使其具有以经典方式定义的模型的所有属性?更准确地说,如标题所示:一堆堆叠的层和一个模型有什么区别?
【问题讨论】:
标签: tensorflow keras