DL之DCGAN:基于keras框架利用深度卷积对抗网络DCGAN算法对MNIST数据集实现图像生成

简介: DL之DCGAN:基于keras框架利用深度卷积对抗网络DCGAN算法对MNIST数据集实现图像生成

设计思路

image.png


输出结果

X像素取值范围是[-1.0, 1.0]

_________________________________________________________________

Layer (type)                 Output Shape              Param #  

=================================================================

dense_1 (Dense)              (None, 1024)              103424    

_________________________________________________________________

activation_1 (Activation)    (None, 1024)              0        

_________________________________________________________________

dense_2 (Dense)              (None, 6272)              6428800  

_________________________________________________________________

batch_normalization_1 (Batch (None, 6272)              25088    

_________________________________________________________________

activation_2 (Activation)    (None, 6272)              0        

_________________________________________________________________

reshape_1 (Reshape)          (None, 7, 7, 128)         0        

_________________________________________________________________

up_sampling2d_1 (UpSampling2 (None, 14, 14, 128)       0        

_________________________________________________________________

conv2d_1 (Conv2D)            (None, 14, 14, 64)        204864    

_________________________________________________________________

activation_3 (Activation)    (None, 14, 14, 64)        0        

_________________________________________________________________

up_sampling2d_2 (UpSampling2 (None, 28, 28, 64)        0        

_________________________________________________________________

conv2d_2 (Conv2D)            (None, 28, 28, 1)         1601      

_________________________________________________________________

activation_4 (Activation)    (None, 28, 28, 1)         0        

=================================================================

Total params: 6,763,777

Trainable params: 6,751,233

Non-trainable params: 12,544

_________________________________________________________________

_________________________________________________________________

Layer (type)                 Output Shape              Param #  

=================================================================

conv2d_3 (Conv2D)            (None, 28, 28, 64)        1664      

_________________________________________________________________

activation_5 (Activation)    (None, 28, 28, 64)        0        

_________________________________________________________________

max_pooling2d_1 (MaxPooling2 (None, 14, 14, 64)        0        

_________________________________________________________________

conv2d_4 (Conv2D)            (None, 10, 10, 128)       204928    

_________________________________________________________________

activation_6 (Activation)    (None, 10, 10, 128)       0        

_________________________________________________________________

max_pooling2d_2 (MaxPooling2 (None, 5, 5, 128)         0        

_________________________________________________________________

flatten_1 (Flatten)          (None, 3200)              0        

_________________________________________________________________

dense_3 (Dense)              (None, 1024)              3277824  

_________________________________________________________________

activation_7 (Activation)    (None, 1024)              0        

_________________________________________________________________

dense_4 (Dense)              (None, 1)                 1025      

_________________________________________________________________

activation_8 (Activation)    (None, 1)                 0        

=================================================================

Total params: 3,485,441

Trainable params: 3,485,441

Non-trainable params: 0

_________________________________________________________________

2020-11-24 21:53:56.659897: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2

(25, 28, 28, 1)


image.png


核心代码

def generator_model():

   model = Sequential()

   model.add(Dense(input_dim=100, units=1024))     #  1034  1024

   model.add(Activation('tanh'))

   model.add(Dense(128*7*7))

   model.add(BatchNormalization())

   model.add(Activation('tanh'))

   model.add(Reshape((7, 7, 128), input_shape=(128*7*7,)))

   model.add(UpSampling2D(size=(2, 2)))

   model.add(Conv2D(64, (5, 5), padding='same'))

   model.add(Activation('tanh'))

   model.add(UpSampling2D(size=(2, 2)))

   model.add(Conv2D(1, (5, 5), padding='same'))

   model.add(Activation('tanh'))

   return model

def discriminator_model():     # 定义鉴别网络:输入一张图像,输出0(伪造)/1(真实)

   model = Sequential()

   model.add(

           Conv2D(64, (5, 5),

           padding='same',

           input_shape=(28, 28, 1))

           )

   model.add(Activation('tanh'))

   model.add(MaxPooling2D(pool_size=(2, 2)))

   model.add(Conv2D(128, (5, 5)))

   model.add(Activation('tanh'))

   model.add(MaxPooling2D(pool_size=(2, 2)))

   model.add(Flatten())

   model.add(Dense(1024))

   model.add(Activation('tanh'))

   model.add(Dense(1))

   model.add(Activation('sigmoid'))

   return model

g = generator_model()

g.summary()

d = discriminator_model()

d.summary()


相关文章
|
14天前
|
机器学习/深度学习 算法 PyTorch
【从零开始学习深度学习】38. Pytorch实战案例:梯度下降、随机梯度下降、小批量随机梯度下降3种优化算法对比【含数据集与源码】
【从零开始学习深度学习】38. Pytorch实战案例:梯度下降、随机梯度下降、小批量随机梯度下降3种优化算法对比【含数据集与源码】
|
18小时前
|
机器学习/深度学习 存储 算法
基于SFLA算法的神经网络优化matlab仿真
**摘要:** 使用MATLAB2022a,基于SFLA算法优化神经网络,降低训练误差。程序创建12个神经元的前馈网络,训练后计算性能。SFLA算法寻找最优权重和偏置,更新网络并展示训练与测试集的预测效果,以及误差对比。SFLA融合蛙跳与遗传算法,通过迭代和局部全局搜索改善网络性能。通过调整算法参数和与其他优化算法结合,可进一步提升模型预测精度。
|
5天前
|
机器学习/深度学习 算法 数据可视化
基于BP神经网络的64QAM解调算法matlab性能仿真
**算法预览图省略** MATLAB 2022A版中,运用BP神经网络进行64QAM解调。64QAM通过6比特映射至64复数符号,提高数据速率。BP网络作为非线性解调器,学习失真信号到比特的映射,对抗信道噪声和多径效应。网络在处理非线性失真和复杂情况时展现高适应性和鲁棒性。核心代码部分未显示。
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习算法入门:从K-means到神经网络
【6月更文挑战第26天】机器学习入门:从K-means到神经网络。文章涵盖了K-means聚类、逻辑回归、决策树和神经网络的基础原理及应用场景。K-means用于数据分组,逻辑回归适用于二分类,决策树通过特征划分做决策,神经网络则在复杂任务如图像和语言处理中大显身手。是初学者的算法导览。
|
8天前
|
机器学习/深度学习 算法 数据可视化
m基于PSO-LSTM粒子群优化长短记忆网络的电力负荷数据预测算法matlab仿真
在MATLAB 2022a中,应用PSO优化的LSTM模型提升了电力负荷预测效果。优化前预测波动大,优化后预测更稳定。PSO借鉴群体智能,寻找LSTM超参数(如学习率、隐藏层大小)的最优组合,以最小化误差。LSTM通过门控机制处理序列数据。代码显示了模型训练、预测及误差可视化过程。经过优化,模型性能得到改善。
28 6
|
6天前
|
机器学习/深度学习 算法 PyTorch
神经网络反向传播算法
神经网络中的反向传播算法是用于训练的关键步骤,通过计算损失函数梯度更新权重。它始于前向传播,即输入数据通过网络得出预测输出,接着计算预测与实际值的误差。反向传播利用链式法则从输出层开始逐层计算误差,更新每一层的权重和偏置。例如,一个包含隐藏层的网络,初始权重随机设定,通过反向传播计算损失函数梯度,如sigmoid激活函数的网络,调整权重以减小预测误差。在Python的PyTorch框架中,可以使用`nn.Linear`定义层,`optimizer`进行参数优化,通过`backward()`计算梯度,`step()`更新参数。
|
6天前
|
缓存 算法
基于机会网络编码(COPE)的卫星网络路由算法matlab仿真
**摘要:** 该程序实现了一个基于机会网络编码(COPE)的卫星网络路由算法,旨在提升无线网络的传输效率和吞吐量。在MATLAB2022a中测试,结果显示了不同数据流个数下的网络吞吐量。算法通过Dijkstra函数寻找路径,计算编码机会(Nab和Nx),并根据编码机会减少传输次数。当有编码机会时,中间节点执行编码和解码操作,优化传输路径。结果以图表形式展示,显示数据流与吞吐量的关系,并保存为`R0.mat`。COPE算法预测和利用编码机会,适应卫星网络的动态特性,提高数据传输的可靠性和效率。
|
13天前
|
机器学习/深度学习 算法
基于BP神经网络和小波变换特征提取的烟草香型分类算法matlab仿真,分为浓香型,清香型和中间香型
```markdown 探索烟草香型分类:使用Matlab2022a中的BP神经网络结合小波变换。小波分析揭示香气成分的局部特征,降低维度,PCA等用于特征选择。BP网络随后处理这些特征,以区分浓香、清香和中间香型。 ```
|
18小时前
|
机器学习/深度学习 算法 数据可视化
基于googlenet深度学习网络的睁眼闭眼识别算法matlab仿真
**算法预览图展示睁眼闭眼识别效果;使用Matlab2022a,基于GoogLeNet的CNN模型,对图像进行分类预测并可视化。核心代码包括图像分类及随机样本显示。理论概述中,GoogLeNet以高效Inception模块实现眼部状态的深度学习识别,确保准确性与计算效率。附带三张相关图像。**
|
2天前
|
存储 算法 Java
Java数据结构与算法:用于高效地存储和检索字符串数据集
Java数据结构与算法:用于高效地存储和检索字符串数据集