位置: IT常识 - 正文

【深度学习】pix2pix GAN理论及代码实现与理解

编辑:rootadmin
【深度学习】pix2pix GAN理论及代码实现与理解

推荐整理分享【深度学习】pix2pix GAN理论及代码实现与理解,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

灵感:最近也是在看关于GAN方面的代码,也是看到了很多篇博客,都写的挺好的,让我醍醐灌顶,理解了GAN的原理以及代码实现。所以写一下来记载一下,最后有其他好文章的链接。

灵感来源:pix2pixGAN理论以及代码实现

目录

1.什么是pix2pix GAN

2.pix2pixGAN生成器的设计

 3.pix2pixGAN判别器的设计

4.损失函数

5.代码实现 

6.参考文献

1.什么是pix2pix GAN

它实际上就是一个CGAN,条件GAN,不过是改变了一般GAN的辨别器的输出。其他的都是输出一个概率,而pix2pixGAN或者也可以是patchgan,它的最终输出是一个矩阵,每一个块代表一个patch的概率而已。关于patch这一块的知识可以去其他地方补一下,文末也有入口。

 图片x作为此cGAN的条件,需要输入到G和D中。G的输入是x(x是需要转换的图片),输出是生成的图片G(x)。D则需要分辨出(x,G(x))和(x,y)

pix2pixGAN主要用于图像之间的转换,又称图像翻译。

2.pix2pixGAN生成器的设计

对于图像翻译任务来说,输入和输出之间会共享很多信息。比如轮廓信息是共享的。如何解决共享问题?需要我们从损失函数的设计当中去思考。

如果使用普通的卷积神经网络,那么会导致每一层都承载保存着所有的信息。这样神经网络很容易出错(容易丢失一些信息)

所以,我们使用UNet模型作为生成器

 3.pix2pixGAN判别器的设计

D要输入成对的图像。这类似于cGAN,如果G(x)和x是对应的,对于生成器来说希望判别为1;

【深度学习】pix2pix GAN理论及代码实现与理解

如果G(x)和x不是对应的,对于生成器来说希望判别器判别为0

pix2pixGAN中的D被论文中被实现为patch_D.所谓patch,是指无论生成的图片有多大,将其切分为多个固定大小的patch输入进D去判断。如上图所示。

这样设计的好处是:D的输入变小,计算量小,训练速度快

4.损失函数

D网络损失函数:输入真实的成对图像希望判定为1;输入生成图像与原图希望判定为0

G网络损失函数:输入生成图像与原图像希望判定为1

 对于图像翻译任务而言,G的输入和输出之间其实共享了很多信息。因而为了保证输入图像和输出图像之间的相似度,还加入了L1loss,公式如下所示:

5.代码实现 

代码实现的话有官方以及别人的实现,但是我有点不懂。然后看到这个链接的代码才懂。

全部代码在这:pix2pixGAN理论以及代码实现

我作为笔记记录,写一下我觉得关键的代码理解。

for step,(annos,imgs) in enumerate(dataloader): imgs = imgs.to(device) #imgs 输入的图像 annos = annos.to(device) #标签,真实的应该生成的图片 #定义判别器的损失计算以及优化的过程 d_optimizer.zero_grad() disc_real_output = dis(annos,imgs) #输入真实成对图片 d_real_loss = loss_fn(disc_real_output,torch.ones_like(disc_real_output, device=device)) #上面是为了将我们输入的真实图像对都标为1,希望他接近1,因为真实嘛 d_real_loss.backward() #求梯度 gen_output = gen(annos) #通过输入图像生成图片 disc_gen_output = dis(annos,gen_output.detach()) #将我们输入的和生成的图片输入辨别器 d_fack_loss = loss_fn(disc_gen_output,torch.zeros_like(disc_gen_output, device=device)) #辨别器希望生成的和我们输入的图像最终的判断为0,也就是假的嘛 d_fack_loss.backward() disc_loss = d_real_loss+d_fack_loss#判别器的损失计算,由两个之和 d_optimizer.step() #梯度更新 #定义生成器的损失计算以及优化的过程 g_optimizer.zero_grad() disc_gen_out = dis(annos,gen_output) #辨别器辨别输入图像和生成图像的匹配度 gen_loss_crossentropyloss = loss_fn(disc_gen_out, torch.ones_like(disc_gen_out, device=device)) #生成器和辨别器相反,他希望生成的图像和输入的图像匹配为真实,也就是造假嘛 gen_l1_loss = torch.mean(torch.abs(gen_output-imgs)) #L1损失 gen_loss = gen_loss_crossentropyloss +LAMBDA*gen_l1_loss gen_loss.backward() #反向传播 g_optimizer.step() #优化 #累计每一个批次的loss with torch.no_grad(): D_epoch_loss +=disc_loss.item() G_epoch_loss +=gen_loss.item()上面用到的loss_fn是BCE损失。因为我们的辨别器输出值为概率嘛,0到1,所以算得上是二分类,可以使用BCE。6.参考文献

     GAN系列之 pix2pixGAN 网络原理介绍以及论文解读https://blog.csdn.net/m0_62128864/article/details/124026977

一文看懂PatchGAN_明月几时有.的博客-CSDN博客_patchgan最近看到PatchGAN很是好奇原理是什么,发现网上很多介绍的并不清楚.故墙外墙内来回几次,大概是清楚了.PatchGAN其实指的是GAN的判别器,将判别器换成了全卷积网络.这么说并不严谨,PatchGAN和普通GAN判别器是有区别的,普通的GAN判别器是将输入映射成一个实数,即输入样本为真样本的概率.PatchGAN将输入映射为NxN的patch(矩阵)X,XijX_{ij}Xij​的值代表...https://blog.csdn.net/weixin_35576881/article/details/88058040

pix2pix算法笔记_AI之路的博客-CSDN博客_pix2pix算法论文:Image-to-Image Translation with Conditional Adversarial Networks论文链接:https://arxiv.org/abs/1611.07004代码链接:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix这篇论文发表在CVPR2017,简称pix2pix,是将GAN应用...https://blog.csdn.net/u014380165/article/details/98453672

Pix2Pix-基于GAN的图像翻译_张雨石的博客-CSDN博客_pix2pix算法语言翻译是大家都知道的应用。但图像作为一种交流媒介,也有很多种表达方式,比如灰度图、彩色图、梯度图甚至人的各种标记等。在这些图像之间的转换称之为图像翻译,是一个图像生成任务。多年来,这些任务都需要用不同的模型去生成。在GAN出现之后,这些任务一下子都可以用同一种框架来解决。这个算法的名称叫做Pix2Pix,基于对抗神经网络实现。https://blog.csdn.net/stdcoutzyx/article/details/78820728

本文链接地址:https://www.jiuchutong.com/zhishi/298920.html 转载请保留说明!

上一篇:Pytorch教程入门系列11----模型评估(pytorch怎么入门)

下一篇:前后端分离式交互(前后端分离弊端)

  • itunesstore与appstore关闭打不开(itunesstore与appstore打不开)

    itunesstore与appstore关闭打不开(itunesstore与appstore打不开)

  • 华为mate20插耳机没反应(华为mate20插耳机说话对面听不到)

    华为mate20插耳机没反应(华为mate20插耳机说话对面听不到)

  • 苹果手机都是英文怎么改中文(苹果手机都是英文字母,怎么设置中文)

    苹果手机都是英文怎么改中文(苹果手机都是英文字母,怎么设置中文)

  • 小米云流量支持机型有哪些(小米云流量支持多少G)

    小米云流量支持机型有哪些(小米云流量支持多少G)

  • ipad怎么看iphone定位(ipad怎么看iphone定位准确吗)

    ipad怎么看iphone定位(ipad怎么看iphone定位准确吗)

  • 美团开店宝是干什么的(美团开店宝是啥)

    美团开店宝是干什么的(美团开店宝是啥)

  • 电脑为什么有敲桌子的声音(电脑为什么敲不上字)

    电脑为什么有敲桌子的声音(电脑为什么敲不上字)

  • 抖音怎样用别人的场景(抖音怎样用别人的视频去除抖音号)

    抖音怎样用别人的场景(抖音怎样用别人的视频去除抖音号)

  • iphone12支持双卡双待吗(iPhone12支持双卡的版本)

    iphone12支持双卡双待吗(iPhone12支持双卡的版本)

  • 淘宝自动确认收货后还能退货吗(淘宝自动确认收货后运费险还有效吗)

    淘宝自动确认收货后还能退货吗(淘宝自动确认收货后运费险还有效吗)

  • 德赛电池是苹果原装吗(德赛电池是苹果供应商吗)

    德赛电池是苹果原装吗(德赛电池是苹果供应商吗)

  • 钉钉会议记录在哪里(钉钉会议记录在哪里电脑版)

    钉钉会议记录在哪里(钉钉会议记录在哪里电脑版)

  • 快手把别人加入黑名单了对方知道吗(快手把别人加入黑名单了对方能看到我的作品吗)

    快手把别人加入黑名单了对方知道吗(快手把别人加入黑名单了对方能看到我的作品吗)

  • 小米小窗口模式在哪里设置(小米小窗口模式怎么调大小)

    小米小窗口模式在哪里设置(小米小窗口模式怎么调大小)

  • 天猫旗舰店怎么投诉(天猫旗舰店怎么看是不是官方的)

    天猫旗舰店怎么投诉(天猫旗舰店怎么看是不是官方的)

  • 华为nova5pro卡槽在哪(华为nova5pro卡槽是哪个孔)

    华为nova5pro卡槽在哪(华为nova5pro卡槽是哪个孔)

  • 怎么用抖音视频做锁屏(怎么用抖音视频的模板)

    怎么用抖音视频做锁屏(怎么用抖音视频的模板)

  • 天猫积分什么时候清零(天猫积分什么时候过期)

    天猫积分什么时候清零(天猫积分什么时候过期)

  • 韩剧tv怎么改储存位置(韩剧tv怎么改版本)

    韩剧tv怎么改储存位置(韩剧tv怎么改版本)

  • 安卓vsco主动扣钱吗(安卓使用vsco)

    安卓vsco主动扣钱吗(安卓使用vsco)

  • 小米平板安全中心在哪(小米平板安全中心下载)

    小米平板安全中心在哪(小米平板安全中心下载)

  • apaas与ipaas区别(iaaspaassaas有什么区别)

    apaas与ipaas区别(iaaspaassaas有什么区别)

  • win10撤销更改无限重启(win10撤销更改无限重启怎么办)

    win10撤销更改无限重启(win10撤销更改无限重启怎么办)

  • 京东账号怎么找回(京东账号怎么找回来,原来的号码不用了)

    京东账号怎么找回(京东账号怎么找回来,原来的号码不用了)

  • 苹果手机如何关闭LED闪烁提醒灯(苹果手机如何关手机)

    苹果手机如何关闭LED闪烁提醒灯(苹果手机如何关手机)

  • 什么是极座标(极坐标分别表示什么)

    什么是极座标(极坐标分别表示什么)

  • 软件工程毕设题目大全 40个计算机毕业设计项目分享【含源码+论文】(软件工程毕设题目冷门)

    软件工程毕设题目大全 40个计算机毕业设计项目分享【含源码+论文】(软件工程毕设题目冷门)

  • 北京增值税认证平台电话
  • 高速公路费如何冲抵
  • 上月未记账本月可以记账吗
  • 一般纳税人软件销售税率
  • 停业的纳税人还交税吗
  • 固定资产适用范围
  • 注册商标怎么做账
  • 货车的车辆购置税是多少
  • 哪些科目需要计提资产减值损失
  • 广告费收入是不是非税收入
  • 跨年收到暂估费用的发票如何处理
  • 三方协议怎么入账
  • 工会经费应该计入人工成本吗
  • 小微企业增值税减免账务处理
  • 中标服务费直接按开票金额付款吗
  • 委任方名称代表的是什么意思?
  • 补偿金满一年不满一年半
  • 有合同未收到租金税务如何处理?
  • 经营现金流量为负数是什么意思
  • 服务费主营业务收入会计分录
  • 不计提直接发工资
  • 2019新版利润表填表说明
  • 电子申报是什么
  • 新版edge浏览器历史记录
  • win10 5月更新已知bug
  • kb4579311安装失败
  • 摊余成本计量的金融资产账面价值
  • 招待费报账怎么查
  • 所有者权益会计要素包括
  • php判断字符串是否合法日期
  • php each list
  • 小规模企业现金怎样管理
  • vue–router
  • php自动化脚本
  • ftp port命令
  • php curl_setopt
  • 什么时间可以开发票
  • 如何去掉或修改文件夹
  • 免交增值税应该计入什么科目
  • 在建工程待摊支出是什么意思
  • 什么指的是土地面积
  • 弥补亏损怎么做分录
  • 应收账款收不回来了应怎么做会计分录
  • 企业所得税如何规避
  • 汇兑损益方式为外币结清怎么操作
  • 报销人跟领款人有什么区别
  • 小规模纳税人财务报表季报怎么填
  • 错开发票所需要提供的资料以及时效要求是?
  • 开发票时如何添加商品编码?
  • 新办企业必须经过什么核准登记
  • mysql索引数据结构有哪些
  • mysql 正则表达式分组替换
  • windows10 硬件
  • netsh cmd
  • win7 双击不能打开文件
  • ubuntu12.04.5安装教程
  • windows环境是什么意思
  • 双linux系统
  • linux修改服务器ip地址
  • ubuntu 21.10安装
  • linux 安装指令
  • ssh登录报错
  • win10 directx9
  • win7文件和打印机共享
  • win10切换登陆账户为administrator
  • mfc界面布局
  • opengl环境光
  • perl 计算
  • javascript弹窗函数
  • 拦截器 aop
  • webview实现有什么用
  • vue中组件的作用是什么
  • python3并发
  • 用javascript写表单代码
  • 一个治疗Unity的Prefab强迫症患者的小招(Prefab变成红色的问题)
  • django优势在哪里
  • 庐山坐缆车上去后还要买门票吗?
  • 所得税调增调减搞不清
  • 单位名称变更后发票还能用吗
  • 济南高新区工商局政务大厅电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设