尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

《深度学习原理与PyTorch实战》DCGAN对抗生成网络:手把手训练你的图像造假大师

《深度学习原理与PyTorch实战》DCGAN对抗生成网络:手把手训练你的图像造假大师 《深度学习原理与PyTorch实战》DCGAN对抗生成网络手把手训练你的图像造假大师【免费下载链接】book_DeepLearning_in_PyTorch_Source项目地址: https://gitcode.com/gh_mirrors/bo/book_DeepLearning_in_PyTorch_Source在开源项目《深度学习原理与PyTorch实战》的源码中我们使用 PyTorch 完整实现了一个DCGAN深度卷积生成对抗网络生成器输入一个 100 维随机噪声向量就能画出一张 28×28 的手写数字图像判别器则负责分辨图像是真实的还是伪造的。两个网络目标相反、同时训练上演一场精彩的猫鼠游戏。课程基于内置的 MNIST 手写数字数据集全程用 CPU 也能跑通跟着动手只需几十分钟即可训练出你的第一只图像造假大师。一、什么是 DCGAN生成器与判别器的猫鼠游戏 生成对抗网络GAN是一种从噪声中凭空造图的 AI 技术DCGAN 是它的深度卷积版本。整个系统由两个神经网络对抗组成角色网络任务目标函数 造假者生成器 Generator (G)把随机噪声变成以假乱真的手写数字骗过判别器 鉴定师判别器 Discriminator (D)判断图像来自真实数据集还是 G 伪造识破假图G 想骗过 DD 想识破 G。训练中两者交替更新、水平互相卷上去最终 G 生成的假图越来越逼真。上面这张 1500×1500 的真实人像照片就来自项目图库。在 DCGAN 训练里判别器第一步要做的就是学会识别这类真品特征然后才去辨别 G 生成的赝品。二、DCGAN 代码在哪里项目目录结构与文件清单 整个 DCGAN 课程位于08_Generative_Model/目录克隆项目后即可直接打开git clone https://gitcode.com/gh_mirrors/bo/book_DeepLearning_in_PyTorch_Source关键文件清单文件路径说明08_Generative_Model/图像生成_GenerativeMSE.ipynb核心笔记本三阶段课程全部在这里08_Generative_Model/data/MNIST/内置手写数字数据集raw 原始文件 processed 处理后的 .pt 文件08_Generative_Model/net/netG_epoch_0.pth训练好的生成器权重另有 epoch_1 版本08_Generative_Model/net/netD_epoch_0.pth训练好的判别器权重另有 epoch_1 版本08_Generative_Model/minst_conv_checkpoint预训练的手写数字识别模型供第二阶段欺骗识别器使用08_Generative_Model/temp1/训练过程中保存的一批批生成的假图fake0.png ~ fake99.png![蚂蚁真实照片展示DCGAN训练所需的真实图像数据样本](https://raw.gitcode.com/gh_mirrors/bo/book_DeepLearning_in_PyTorch_Source/raw/d68a3d6112e8d93e961a1dc42a354741684f7598/06_Transfer Learning/data/val/ants/desert_ant.jpg?utm_sourcegitcode_repo_files)上图是项目中蚂蚁/蜜蜂数据集里的一张真实照片812×642。和它类似判别器的训练永远离不开真样本——DCGAN 用的真样本则是 MNIST 手写数字。三、三条渐进式训练路径从 MSE 到完整对抗训练 打开核心笔记本 图像生成_GenerativeMSE.ipynb会发现课程按难度递进安排了三个部分帮你一步步理解生成是如何进化成对抗生成的路径 1生成器预测图像模型监督式输入一个数字标签0~9生成器输出一张图像让它与数据集样本图像的最小均方误差MSELoss最小。这是最朴素的照着样本画。路径 2生成器 识别器模型迁移学习式加载预训练好的识别模型minst_conv_checkpoint并冻结其全部参数让生成器想办法生成能让识别器分类误差CrossEntropyLoss最小的图像——相当于骗过一个固定考官。还能提取识别器前两层的卷积核与特征图直观看到它学到了什么。路径 3DCGAN本章节最终形态生成器和判别器同时从零训练目标函数相反BCELoss噪声完全随机。这才是标准的生成对抗网络猫鼠游戏最终生成效果也最好。四、DCGAN 训练四步走手把手教程 完整的 DCGAN 训练循环核心只有 4 步与笔记本中 DCGAN 部分的代码注释一一对应真实图喂给 D读取一个 batch64 张MNIST 真实图像判别器应输出真计算误差 D_x噪声生成假图随机噪声向量100 维输入生成器输出一批 28×28 假图喂给判别器判别器应输出假计算误差 D_x2更新判别器把 D_x 与 D_x2 两个误差合并反向传播更新 D 的权重更新生成器利用生成图像产生的误差反向传播更新 G 的权重——G 的学费就是被 D 识破的程度。关键超参数笔记本开头统一定义参数取值作用image_size28MNIST 手写数字图像尺寸input_dim100输入 G 的随机噪声维度越大生成多样性越高num_features64卷积层通道数batch_size64每批样本数优化器Adam学习率 0.0002betas(0.5, 0.999)可自动调节收敛速度损失函数BCELoss二元交叉熵判别器ModelD是一个标准的卷积神经网络两层 Conv2d BatchNorm ReLU展平后经全连接层最后用 Sigmoid 输出 0~1 的真实概率。![DCGAN判别器使用的卷积神经网络结构图](https://raw.gitcode.com/gh_mirrors/bo/book_DeepLearning_in_PyTorch_Source/raw/d68a3d6112e8d93e961a1dc42a354741684f7598/15_Reinforcement Learning/images/network.png?utm_sourcegitcode_repo_files)上图是项目另一课程中的卷积神经网络结构示意图1064×807可以帮你直观理解判别器如何把一张图像逐层压缩、最终输出真假判断。五、DCGAN 生成效果验证如何判断假图质量 ✅训练 100 个 epoch 后可以这样检验你的造假大师看训练曲线笔记本末尾会绘制 G 和 D 的损失曲线两条曲线起伏纠缠、整体下降属于正常对抗状态看假图演变打开temp1/目录fake0.png、fake1.png……对应训练早期的输出从一团噪声逐渐长出数字的笔画加载权重复现net/netG_epoch_*.pth与net/netD_epoch_*.pth是不同训练阶段的存档可直接载入做推理对比。就像毕加索的立体派画作打破原有构图一样DCGAN 的生成器也是一位没有临摹对象的画家——输入只有随机噪声输出的却是风格统一的全新数字图像。六、DCGAN 训练常见坑与调参技巧 双方损失忽高忽低是正常现象G 与 D 是极小极大博弈只要观察固定噪声下假图是否越来越清晰不要只盯损失值生成器学不动假图一直是噪声判别器太强可降低 D 的学习率或减少 D 的更新频率输出全黑/全白一片检查 BatchNorm 是否正常生效或学习率是否过大没有 GPU 也能跑全部代码带use_cuda判断无 GPU 时自动回退到 CPU用fixed_noise观察进化过程训练全程固定同一组噪声每轮保存生成结果就能直观看到数字长出来的全过程。总结《深度学习原理与PyTorch实战》的08_Generative_Model/目录用最经典的 MNIST 数据集带你走完了 DCGAN 的全流程从监督式生成、骗过冻结识别器到完整的生成对抗网络训练。打开 图像生成_GenerativeMSE.ipynb配合net/里的现成权重与temp1/的假图样本你甚至可以不训练、先看结果再亲手跑一遍验证——这就是生成对抗网络最迷人的地方造假与鉴真在互相博弈中共同进化。【免费下载链接】book_DeepLearning_in_PyTorch_Source项目地址: https://gitcode.com/gh_mirrors/bo/book_DeepLearning_in_PyTorch_Source创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表