卷积自编码器(Convolutional Autoencoder)的一个实验

1、卷积自编码器(CAE)的简单介绍

卷积自编码器是自编码器方法的一种延伸,自编码器包括编码和解码,通过将输入的图像进行编码,特征映射到隐层空间,然后解码器对隐层空间的特征进行解码(重建的过程)获得输入的重建样本。自编码一般使用NN网络做编码和解码器,卷积自编码器利用卷积网络对图像特征抽取和表示的优异性能,来代替自编码器的NN网络。

当然,很多人也使用MNIST等数据集,使用CAE做图像去噪等。本文使用CAE做一个人表情图像和其他数据集图像的重建实验,实验的效果没有想象中的那么理想,很大原因,我只是直接拷贝github上的参考代码,源代码有一些报错,做了简单的修改,就没有做参数和框架的改进..........

CAE

2、实验情况

在百度图库中找了12张人脸表情图片,resize到256x256大小,输入CAE网络迭代了1000步,效果很差,和DCGAN没法比。如下图:左边是原图,右边是重建的效果图。 也用了其他的图库做了实验,就不一一放上去了。

  

  • 5
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
卷积自编码器Convolutional Autoencoder)常用于图像数据的降维和重建,但同样可以应用于一维数据的降维和重建。下面是一维数据进行卷积自编码器重建的步骤: 1. 导入必要的库,如Keras和NumPy: ```python import keras from keras.layers import Input, Conv1D, MaxPooling1D, UpSampling1D from keras.models import Model import numpy as np ``` 2. 构建卷积自编码器: ```python input_data = Input(shape=(num_features, 1)) # 编码器 encoded = Conv1D(filters=16, kernel_size=3, activation='relu', padding='same')(input_data) encoded = MaxPooling1D(pool_size=2)(encoded) # 解码器 decoded = Conv1D(filters=16, kernel_size=3, activation='relu', padding='same')(encoded) decoded = UpSampling1D(size=2)(decoded) decoded = Conv1D(filters=1, kernel_size=3, activation='sigmoid', padding='same')(decoded) autoencoder = Model(inputs=input_data, outputs=decoded) autoencoder.compile(optimizer='adam', loss='binary_crossentropy') ``` 该模型包括一个一维卷积层和一个池化层构成的编码器,以及一个一维反卷积层和一个卷积层构成的解码器。编码器将输入数据压缩为16维的向量,解码器将该向量还原为原始的一维数据。损失函数使用二元交叉熵,优化器使用Adam。 3. 准备数据并训练模型: ```python # 准备数据 x_train = np.random.random((num_samples, num_features, 1)) # 训练模型 autoencoder.fit(x_train, x_train, epochs=10, batch_size=32) ``` 4. 进行重建: ```python # 进行重建 decoded_data = autoencoder.predict(x_train) ``` 这样就完成了对一维数据的卷积自编码器重建。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值