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

展平并重塑编码器的输入

展平并重塑编码器的输入

缥缈止盈 2023-07-11 13:47:48
我有一个包含 3D 固定长度段的数据集(1,200,4),我想将其输入到具有完全连接层的 Antoencoder 中,类似于: encoderautoencoder.add(Dense(200, input_shape=(self.input_dim,), activation='relu'))  autoencoder.add(Dense(100, input_shape=(self.input_dim,), activation='relu'))  autoencoder.add(Dense(80, input_shape=(self.input_dim,), activation='linear'))  autoencoder.add(Dense(encoding_dim, input_shape=(self.input_dim,), activation='linear'))         #decoderautoencoder.add(Dense(80, activation='linear')) autoencoder.add(Dense(100, activation='relu')) autoencoder.add(Dense(200, activation='relu'))  autoencoder.add(Dense(self.input_dim, activation='linear'))我知道这个输入在输入到这个网络之前需要被展平,我希望在第一个编码器Flatten()之前添加一个层。Dense()我不确定的是一种(1,200,4)在解码器部分将输入重建回其自身形状的方法。如果重要的话,输入由固定长度段的 numpy-ndarray 组成,这样:print(train_x.shape)(140508, 1, 200, 4)例如,假设输入是这样的:X = np.random.randn(3400, 1, 200, 4)X.shape(3400, 1, 200, 4)我如何在编码器处将展平层应用于此输入,然后在解码器处重建它以获得与上面类似的全连接自动编码器。对此有什么建议吗?
查看完整描述

1 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

这里有一种可能性......您最终需要简单地处理维度并进行适当的重塑


encoding_dim = 20

input_shape = (1,200,4)

n_sample = 100


X = np.random.uniform(0,1, (n_sample,) + input_shape)


autoencoder = Sequential()


autoencoder.add(Flatten(input_shape=input_shape))

autoencoder.add(Dense(200, activation='relu'))  

autoencoder.add(Dense(100, activation='relu'))  

autoencoder.add(Dense(80, activation='relu'))  

autoencoder.add(Dense(encoding_dim, activation='relu')) 

        

#decoder

autoencoder.add(Dense(80, activation='relu')) 

autoencoder.add(Dense(100, activation='relu')) 

autoencoder.add(Dense(200, activation='relu'))  

autoencoder.add(Dense(np.prod(input_shape), activation='linear'))

autoencoder.add(Reshape(input_shape))


print(autoencoder.summary())

autoencoder.compile('adam', 'mse')

autoencoder.fit(X,X, epochs=3)


查看完整回答
反对 回复 2023-07-11
  • 1 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

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