在一个名为的类Generator
中,我使用以下方法定义了一个模型define_model
:
def define_model(self):
conv2d = Generator.__last_block()
output = Activation('tanh')(conv2d)
model = Model(self.input_layer, output)
return model
在另一个文件中,我正在编写我的 Python 程序的入口点,它调用生成器的define_model
方法:
generator = Generator()
generator_model = generator.define_model()
input_low_resolution = Input(shape=low_resolution_shape)
generated_high_resolution_images = generator_model(input_low_resolution)
当我阅读课程时,我对这段代码有一个疑问:Keras 在执行该行时会做什么generated_high_resolution_images = generator_model(input_low_resolution)
?
据我所知,它没有定义模型(我的模型已经定义了generator.define_model()
!)。而且由于没有调用 Keras 方法或其他方法train
,fit
我推断这条线不会训练模型。
顺便说一句,这对我来说真的很奇怪,因为它将参数传递给引用(对对象的引用是generator_model
,参数是input_low_resolution
)。通常我们将参数传递给引用的方法(构造函数和其他方法)。