没有合适的资源?快使用搜索试试~ 我知道了~
图片的自动编码很容易就想到用卷积神经网络做为编码-解码器。在实际的操作中, 也经常使用卷积自动编码器去解决图像编码问题,而且非常有效。 下面通过**keras**完成简单的卷积自动编码。 编码器有堆叠的卷积层和池化层(max pooling用于空间降采样)组成。 对应的解码器由卷积层和上采样层组成。 @requires_authorization # -*- coding:utf-8 -*- from keras.layers import Input, Dense, Conv2D, MaxPooling2D, UpSampling2D from keras.models import Mo
资源推荐
资源详情
资源评论
keras自动编码器实现系列之卷积自动编码器操作自动编码器实现系列之卷积自动编码器操作
图片的自动编码很容易就想到用卷积神经网络做为编码-解码器。在实际的操作中,
也经常使用卷积自动编码器去解决图像编码问题,而且非常有效。
下面通过**keras**完成简单的卷积自动编码。 编码器有堆叠的卷积层和池化层(max pooling用于空间降采样)组成。 对应的解
码器由卷积层和上采样层组成。
@requires_authorization
# -*- coding:utf-8 -*-
from keras.layers import Input, Dense, Conv2D, MaxPooling2D, UpSampling2D
from keras.models import Model
from keras import backend as K
import os
## 网络结构 ##
input_img = Input(shape=(28,28,1)) # Tensorflow后端, 注意要用channel_last
# 编码器部分
x = Conv2D(16, (3,3), activation='relu', padding='same')(input_img)
x = MaxPooling2D((2,2), padding='same')(x)
x = Conv2D(8,(3,3), activation='relu', padding='same')(x)
x = MaxPooling2D((2,2), padding='same')(x)
x = Conv2D(8, (3,3), activation='relu', padding='same')(x)
encoded = MaxPooling2D((2,2), padding='same')(x)
# 解码器部分
x = Conv2D(8, (3,3), activation='relu', padding='same')(encoded)
x = UpSampling2D((2, 2))(x)
x = Conv2D(8, (3,3), activation='relu', padding='same')(x)
x = UpSampling2D((2, 2))(x)
x = Conv2D(16, (3, 3), activation='relu', padding='same')(x)
x = UpSampling2D((2, 2))(x)
decoded = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x)
autoencoder = Model(input_img, decoded)
autoencoder.compile(optimizer='adam', loss='binary_crossentropy')
# 得到编码层的输出
encoder_model = Model(inputs=autoencoder.input, outputs=autoencoder.get_layer('encoder_out').output)
## 导入数据, 使用常用的手写识别数据集
def load_mnist(dataset_name):
'''
load the data
'''
data_dir = os.path.join("./data", dataset_name)
f = np.load(os.path.join(data_dir, 'mnist.npz'))
train_data = f['train'].T
trX = train_data.reshape((-1, 28, 28, 1)).astype(np.float32)
trY = f['train_labels'][-1].astype(np.float32)
test_data = f['test'].T
teX = test_data.reshape((-1, 28, 28, 1)).astype(np.float32)
teY = f['test_labels'][-1].astype(np.float32)
# one-hot
# y_vec = np.zeros((len(y), 10), dtype=np.float32)
# for i, label in enumerate(y):
# y_vec[i, y[i]] = 1
# keras.utils里带的有one-hot的函数, 就直接用那个了
return trX / 255., trY, teX/255., teY
# 开始导入数据
x_train, _ , x_test, _= load_mnist('mnist')
# 可视化训练结果, 我们打开终端, 使用tensorboard
# tensorboard --logdir=/tmp/autoencoder # 注意这里是打开一个终端, 在终端里运行
资源评论
weixin_38603259
- 粉丝: 5
- 资源: 922
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- SINAMICS DCM系列直流调速装置及其应用
- 力学实验预习课(外系)_cl.pptx
- (176017414)matlab在振动信号处理中的应用
- 666666666pkt文件
- 机械设计LED UV固化机sw2020可编辑非常好的设计图纸100%好用.zip
- (7789424)一个效果很不错的jquery+css导航菜单
- (830824)图书借阅管理系统课程设计
- 666666666文本文件
- (174709010)Sim-EKB-Install-2022-07-26.rar
- 西门子PLC和组态王组态自动配料系统的设计水泥混凝土,以实际视频组态界面为准,带脚本
- 机械设计NGW31行星齿轮减速器ug10非常好的设计图纸100%好用.zip
- 基于MATLAB差影法的人体姿态识别(源码,文档,GUI).zip
- (176954438)jsp+servlet+mysql图书馆图书借阅管理系统设计
- (176816808)基于vue+element开发的管理系统模板 后台使用springboot 前后端分离部署,快速构建自己的web.zip
- (176289212)H30-html手机网站-网页源码移动端前端-H5模板-自适应响应式源码.zip
- shape-predictor-68-face-landmarks.dat
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功