Machine learning 如何将单独创建的编码器和解码器连接在一起?

Machine learning 如何将单独创建的编码器和解码器连接在一起?,machine-learning,keras,autoencoder,Machine Learning,Keras,Autoencoder,我想创建自动编码器并使用它。 我已经创建了编码器和解码器。使用summary()方法,我检查了它们是否良好且对称。 下一步,我想把编码器和解码器连接起来,并接收最终的模型来训练它。 我试图将两者联系起来,但最终的模型总结显示出了一些问题。它不显示模型的所有层(解码器的某些部分缺失)。 您可以看到buld_model()函数。在这里,我试图将两者联系在一起。 谢谢 类自动编码器(对象): 定义初始化(自我, 形状, 编码器的深度, 深度, 编码器(u)滤波器,, 解码器(u过滤器),, 你大踏步

我想创建自动编码器并使用它。 我已经创建了编码器和解码器。使用summary()方法,我检查了它们是否良好且对称。 下一步,我想把编码器和解码器连接起来,并接收最终的模型来训练它。 我试图将两者联系起来,但最终的模型总结显示出了一些问题。它不显示模型的所有层(解码器的某些部分缺失)。 您可以看到buld_model()函数。在这里,我试图将两者联系在一起。 谢谢

类自动编码器(对象):
定义初始化(自我,
形状,
编码器的深度,
深度,
编码器(u)滤波器,,
解码器(u过滤器),,
你大踏步,
你大踏步,
潜伏期,
):
self.shape=shape
#检查提供的过滤器
断言(编码器\u深度==len(编码器\u过滤器),“过滤器计数应与编码器的查找深度匹配”)
断言(解码器\u深度==len(解码器\u过滤器),“过滤器计数应与解码器的查找深度匹配”)
#检查提供的步幅
断言(编码器深度==len(编码器步长),“步长计数应与编码器的查找深度匹配”)
断言(解码器深度==len(解码器步幅),“步幅计数应与解码器的查找深度匹配”)
#深度和潜在空间
self.encoder_depth=编码器_depth
self.decoder\u depth=解码器\u depth
self.潜伏_空间=潜伏_空间
#过滤器
self.encoder\u filters=编码器\u filters
self.decoder\u filters=解码器\u filters
#跨步
self.encoder_-strips=编码器_-strips
self.decoder_-strips=解码器_-strips
self.buld_模型()
def build_编码器(自身):
输入x=输入(shape=self.shape,name=“编码器输入”)
x=输入x
对于范围内的i(自编码器深度):
x=Conv2D(自编码器_过滤器[i],
内核大小=3,
步幅=self.encoder_步幅[i],
padding=“相同”,
name=“编码器转换”+str(i))(x)
x=LeakyReLU()(x)
self.shape\u before\u flat=K.int\u shape(x)[1:]
x=展平()(x)
编码器输出=密集(self.潜伏期空间,name=“编码器输出”)(x)
self.encoder\u输出=编码器\u输出
self.encoder\u input=input\u x
self.encoder=tf.keras.Model(self.encoder\u输入,self.encoder\u输出)
def生成解码器(自身):
解码器输入=输入(shape=(self.潜伏空间),name=“解码器输入”)
x=稠密(np.prod(自形在平坦之前))(解码器输入)
x=重塑(在展平之前自我塑造)(x)
对于范围内的i(自译码器深度):
x=Conv2DTranspose(自译码器滤波器[i],
内核大小=3,
步幅=self.decoder_步幅[i],
padding=“相同”,
name=“解码器转换”+str(i))(x)
如果i
你差点就成功了!小菜一碟。它应该是这样的:

    img = Input(shape=self.img_shape)
    encoded_repr = self.encoder(img)
    reconstructed_img = self.decoder(encoded_repr)

    self.autoencoder = Model(img, reconstructed_img)
    self.autoencoder.compile(loss='mse', optimizer=optimizer)

我希望有帮助

请包括摘要output@TheGuywithTheHat我添加了图片。如果它有效,请将它作为您问题的答案,这样其他人也可以使用它。