生成对抗网络实现超分

生成式对抗网络(GAN, Generative Adversarial Networks )是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。模型通过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。原始 GAN 理论中,并不要求 G 和 D 都是神经网络,只需要是能拟合相应生成和判别的函数即可。但实用中一般均使用深度神经网络作为 G 和 D 。一个优秀的GAN应用需要有良好的训练方法,否则可能由于神经网络模型的自由性而导致输出不理想。

最近参加了PaddleGAN的生成对抗网络七日打卡营,感觉收货颇丰。对于刚刚入门的我来说可能还不能将所有的知识消化吸收,但是还是可以从最基本的原理开始入手。我对GAN的基本原理理解如下:

我们有两个网络,G(Generator)和D(Discriminator)。它们的功能分别是:

  • G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记做G(z)。
  • D是一个判别网络,判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,概率介于0-1之间,越接近1代表越真实,越接近0代表越可能是假的。

经过这几天的学习,相信大家对GAN已经有了一定的了解了,也在前面的作业中体验过GAN的一些应用了。那现在大家是不是想要升级一下难度,自己动手来训练一个模型呢?需要自己动手训练的大作业来啦,大作业内容为基于PaddleGAN中的超分模型,实现卡通画超分。

import os
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 训练数据统计
train_names = os.listdir('PaddleGAN/data/animeSR/train')
print(f'训练集数据量: {len(train_names)}')

# 测试数据统计
test_names = os.listdir('PaddleGAN/data/animeSR/test')
print(f'测试集数据量: {len(test_names)}')

# 训练数据可视化
img = cv2.imread('PaddleGAN/data/animeSR/train/Anime_1.jpg')
img = img[:,:,::-1]
plt.figure()
plt.imshow(img)
plt.show()

 

找到你需要的模型的配置文件,修改模型参数,一般修改迭代次数,num_workers,batch_size以及数据集路径。

有能力的同学也可以尝试修改其他参数,或者基于现有模型进行二次开发,模型代码在/home/aistudio/PaddleGAN/ppgan/models目录下。

以LESRCNNN为例,这里将配置文件lesrcnn_psnr_x4_div2k.yaml中的

参数total_iters设置为50000

参数dataset:train:num_workers设置为4

参数dataset:train:batch_size设置为16

参数dataset:train:gt_folder改为data/animeSR/train

参数dataset:train:lq_folder改为data/animeSR/train_X4

参数dataset:test:gt_folder改为data/animeSR/test

参数dataset:test:lq_folder改为data/animeSR/test_X4

参数periods: [… , … , … , …]periods的数字总和要等于 total_iters 的数值

%cd /home/aistudio/PaddleGAN/
!python -u tools/main.py --config-file configs/lesrcnn_psnr_x4_div2k.yaml

 

测试模型

cd /home/aistudio/PaddleGAN/
!python tools/main.py --config-file configs/lesrcnn_psnr_x4_div2k.yaml --evaluate-only --load /home/aistudio/pretrained_model/ESRGAN_PSNR_50000_weight.pdparams

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值