用DGAN生成mnist图片以及动漫头像图片

第一次接触GAN的时候就觉得这个东西十分的妙~
生成mnist图片跟生成动漫头像的代码大同小异,那么接下来就主要讲生成DGAN生成动漫头像。

一 . 数据集

数据集链接:
链接:https://pan.baidu.com/s/1evXwE7DmAJ0wKXw96Ojj_w
提取码:liao
在这里插入图片描述
关于数据处理,因为一开始网上找的图片的名字太长,不太方便后面后续做数据集,就统一修改了一下图片名字。
然后就是自己定义自己的数据集

  1. 生成txt文件,里面包含图片路径,以及对应的标签,由于GAN是无监督的,所以我就把全部图片标签都设置为1
    在这里插入图片描述

  2. 然后就是定义自己的数据集啦
    在这里插入图片描述
    在这里插入图片描述

二. 网络结构设计

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
训练代码
在这里插入图片描述

三. 结果

只跑了22次,跑不动了/(ㄒoㄒ)/~~,多跑几次效果应该会更好吧
在这里插入图片描述
关于为什么生成图片是23个,并且拼接在一起?
因为调用的save_image函数会调用make_grid函数进行拼接,一行默认8个
之所以是23个,是因为每一次迭代,都会随机取128(这里我设置的是128)个小批数据,而一共有51223个数据,这里取的最后一批,51223%128的余数是23,因此是23个图片。

全代码链接
https://gitee.com/LiaoTing2333/GAN.git

### 关于1D生成对抗网络(1dGAN) #### 概念 生成对抗网络(GAN)是一种用于建模复杂分布的强大工具,其核心在于两个神经网络之间的博弈过程——一个是试图创建逼真数据样本的生成器;另一个是尝试区分真实与伪造样本的判别器。对于特定的一维数据集,比如时间序列或是音频片段等线性结构化信息,则发展出了专门化的变体即1D-GAN[^2]。 这种类型的GAN专注于处理并合成具有单一维度特性的输入向量,在保持原有特性的同时能够创造出新的但又符合统计规律的时间序列表达形式或其他连续型变量集合。 #### 实现 为了实现1D-GAN, 需要构建合适的架构来适应一维数据的特点: - **生成器**: 接受随机噪声作为输入,并输出模拟目标域内实际观测到的概率密度函数形状的一系列数值点。 - **判别器**: 输入既可以是从现实世界采集得到的真实案例也可以是由前述模块制造出来的假象实例; 输出则是一个介于0至1之间表示置信度水平的比例值用来评估给定条目属于哪一类的可能性大小。 下面给出一段简单的MATLAB代码框架用于搭建基础版1D GAN: ```matlab % 定义超参数 latent_dim = 100; n_epochs = 20000; % 构造生成器模型 generator = [ fullyconnectableLayer(latent_dim, 'Name', 'fc1'); reluLayer('Name','relu1'); fullyConnectableLayer(output_size,'Name','out')]; % 创建判别器模型 discriminator = [ fullyConnectableLayer(input_size, 'Name', 'in'); leakyReluLayer(0.2,'Name','lrelu1'); fullyConnectableLayer(1,'Name','score')]; % 训练循环... for epoch=1:n_epochs % ...省略具体细节... end ``` 此段伪代码仅展示了如何定义两者的层结构而不涉及完整的训练逻辑[^1]。 #### 应用 1D-GAN的应用场景广泛存在于多个领域之中,尤其是在那些涉及到长时间跨度记录或者周期性强变化模式识别的任务里表现尤为突出: - **金融预测**:利用历史股价走势来进行未来趋势预估; - **医疗健康监测**:分析心电图(ECG)/脑电波(EEG)信号帮助诊断疾病状态; - **语音合成**:创造自然流畅的人声朗读文本内容; - **物理仿真**:加速计算流体力学(CFD)等问题求解速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值