李宏毅hw-6利用GAN生成动漫图像

一、查漏补缺、熟能生巧:

1.什么是转置卷积convTranspose、以及这种转置卷积怎么使用:

(1)具体的原理直接看李沐老师的那个演示,非常清晰:

47 转置卷积【动手学深度学习v2】_哔哩哔哩_bilibili

(2)对于这个代码

 def dconv_bn_relu(self, in_dim, out_dim):return nn.Sequential(nn.ConvTranspose2d(in_dim, out_dim, kernel_size=5, stride=2,padding=2, output_padding=1, bias=False),        #double height and widthnn.BatchNorm2d(out_dim),nn.ReLU(True))

来自GPT的说法:

2.关于weight_init和self.apply()

3.关于G(z_samples)部分的一个不理解的地方:

二、DCGAN , WGAN ,WGAN_GP (三种的5个epoch的效果对比):

1.DCGAN版本:一般般,直接用助教的sample_code即可,

2.对于WGAN的代码:

也就是在DCGAN中进行这种修改就好了

效果:

 

3.采用WAGN-GP:

需要做的修改:

PyTorch-GAN/implementations/wgan_gp/wgan_gp.py at master · eriklindernoren/PyTorch-GAN (github.com)

 主要是写一个函数,然后把weight_clam那个for循环注释掉,其他的就按照助教给的注释来就好了

def compute_gradient_penalty(self,D, real_samples, fake_samples):    Tensor = torch.cuda.FloatTensor  #if cuda else torch.FloatTensor"""#这里需要参考那个link引入gradient penalty functionImplement gradient penalty function""""""Calculates the gradient penalty loss for WGAN GP"""# Random weight term for interpolation between real and fake samplesalpha = Tensor(np.random.random((real_samples.size(0), 1, 1, 1)))# Get random interpolation between real and fake samplesinterpolates = (alpha * real_samples + ((1 - alpha) * fake_samples)).requires_grad_(True)d_interpolates = D(interpolates)fake = Variable(Tensor(d_interpolates.shape).fill_(1.0), requires_grad=False)# Get gradient w.r.t. interpolatesgradients = autograd.grad(outputs=d_interpolates,inputs=interpolates,grad_outputs=fake,create_graph=True,retain_graph=True,only_inputs=True,)[0]gradients = gradients.view(gradients.size(0), -1)gradient_penalty = ((gradients.norm(2, dim=1) - 1) ** 2).mean()return gradient_penalty

效果:

中午睡觉的时候,用这个kaggle来train一下这个WGAN-GP,

直接设置critic =5 , epoch =1000 试一试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/111641.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《数字图像处理-OpenCV/Python》连载(7)视频文件的读取与保存

《数字图像处理-OpenCV/Python》连载(7)视频文件的读取与保存 本书京东优惠购书链接:https://item.jd.com/14098452.html 本书CSDN独家连载专栏:https://blog.csdn.net/youcans/category_12418787.html 第1章 图像的基本操作 为…

宋浩概率论笔记(六)样本与统计量

参数估计的入门章节,为后面的参数估计与假设检验铺垫基础,难点在于背诵公式,此外对于统计量的理解一定要清晰——本质是多个随机变量复合而成的函数~

Java服务通过动态开关 Profiling 实现关键问题定位-故障定位

作者 观测云 高级技术专家 深圳办公室 黄小龙 简介 Profile 通过收集和分析应用程序运行过程中 CPU、内存和 I/O 相关的数据,可以识别应用程序的性能瓶颈和错误,帮助我们更好地了解程序的运行情况。Profile 是一种非常有价值的技术,通过 Pr…

使用C#开发163邮件发送功能

创建SMTP服务器(发送邮件需要SMTP服务器代发) 这里介绍创建网易SMTP(SMTP是邮件通讯格式)服务器: 1.先注册一个163网易邮箱 2.注册成功后登陆该邮箱 3.在该邮箱中找到设置>POP3/SMTP/IMAP点击进入,如下…

网安之python基础学习作业(1)

目录 目录 前言 思维导图 1,Python中常见的数据类型 1.1数字类型(Number): 1.2字符串类型(String): 1.3.列表类型(List): 1.4.元组类型(T…

刷一下算法

记录下自己的思路与能理解的解法,可能并不是最优解法,不定期持续更新~ 1.盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容…

【数据库主题文档上传激励活动】已开启!快来上传文档赢取奖励

自墨天轮社区的文档版块搭建至今,一直致力于为用户提供具有价值的技术资源与实操干货,此间也有非常多的用户加入进来,分享自己收藏的优质技术资源,共同为所有墨友搭建起一个丰富的技术资源“宝库”,十分感谢大家的支持…

微信小程序 按钮颜色

<button type"primary">主要按钮样式类型</button> <button type"default">默认按钮样式类型</button> <button type"warn">警告按钮样式类型</button> <view>按钮plain是否镂空</view> <bu…

最新清理删除Mac电脑内存空间方法教程

Mac电脑使用的时间越久&#xff0c;系统的运行就会变的越卡顿&#xff0c;这是Mac os会出现的正常现象&#xff0c;卡顿的原因主要是系统缓存文件占用了较多的磁盘空间&#xff0c;或者Mac的内存空间已满。如果你的Mac运行速度变慢&#xff0c;很有可能是因为磁盘内存被过度占用…

如何看待近期tiktok大批量封号问题?

近期大量客户反馈Tiktok账号大批量被封&#xff0c;了解这类客户的情况后&#xff0c;得知被封的账号大部分都是为搬运国内视频上传的账号类型&#xff0c;从这次的事件可以看出&#xff0c;tk对视频的检测以及内容要求度越来越高&#xff0c;Tk风控升级&#xff0c;回导致很多…

个人电脑怎么搭建服务器 花生壳内网穿透 设置路由器虚拟服务器

在个人电脑上搭建服务器并使用花生壳进行内网穿透&#xff0c;以及在路由器上设置虚拟服务器&#xff0c;需要一些步骤&#xff1a; 内网穿透设置&#xff1a; 配置内网穿透&#xff0c;选择服务器软件的端口号&#xff0c;然后将其映射到您的服务器的内部IP地址和端口号。这将…

kali搭建vulhub漏洞靶场

安装kali 下载kali作为虚拟环境&#xff0c; Get Kali | Kali Linux 通过vmvare打开&#xff0c;默认账号密码kali/kali 修改root密码 su passwd root 如果一些配置普通用户做不了就切换kali&#xff0c;或sudo 命令 kali配置 apt换源 echo > /etc/apt/sources.list v…