stylegan2-ada 图像生成
没想到我也成功了

先说一句废话:
感谢各位在网上发布项目经验和代码的大佬们

再说说运行环境:
我是在公司搞的,因为公司的电脑没有显卡,于是用vscode连得服务器linux系统,又在linux里连了一个docker镜像,然后在容器里面实现的,不过cuda是公司自己装的,容器里面已经把相关的环境需要的东西全都搞好了,就不用我操心了。
我实现的是stylegan2-ada ,是这个原来的作者在stylegan2上修改得到的,用了ada。据说用少量的数据集就可以获得比较好的效果
ABSTRACT:
使用太少的数据训练生成对抗网络 (GAN) 通常会导致判别器过度拟合,从而导致训练发散。 我们提出了一种自适应鉴别器增强机制,可显着稳定有限数据机制中的训练。 该方法不需要更改损失函数或网络架构,并且适用于从头开始训练和在另一个数据集上对现有 GAN 进行微调时。 我们在几个数据集上证明,现在只使用几千张训练图像就可以获得良好的结果,通常将 StyleGAN2 结果与少一个数量级的图像相匹配。 我们希望这为 GAN 开辟新的应用领域。 我们还发现广泛使用的 CIFAR-10 实际上是一个有限的数据基准,并将记录 FID 从 5.59 提高到 2.42。
docker地址:https://hub.docker.com/r/heatonresearch/stylegan2-ada

这就是他的目录下面的东西
其中 train 就是训练模型的文件,generate就是生成图像的文件,dataset_tool是转化图像的文件,projecter我还没试过,据说是你给他一张图片,他能搞一系列差不多的,然后进行微调之类的。
我先从生成图像文件开始,我相信生成图像是吸引你们进来的地方:

nvidia-docker run -it -v /home/gqy/docker/ai:/home/ai heatonresearch/stylegan2-ada /bin/bash

连接到docker

cd /home/ai/stylegan2-ada/

切换到目录

python generate.py --network=/home/ai/stylegan2-ada/model/stylegan2-ffhq-config-f.pkl --seeds=1000-1200  --trunc=0.5 --outdir=/home/ai/humanface

生成人脸,用的是stylegan2-ffhq-config-f.pkl 模型,这个模型就是别人提供的
https://nvlabs-fi-cdn.nvidia.com/stylegan2-ada/pretrained/,seeds就是随机种子, trunc 可以控制生成的图片的多样性, 一般在0.5-0.7 ,outdir就是生成的图像的地址。这只是一个例子,具体怎么实施要看你自己的文件的目录。

如果你不想用别人的数据集,你就自己训练出一个模型,首先准备一些三通道(RGB)图片,这个作者说几千张就可以,如果只有几百张,就先试试,看看效果,图片的长和宽都要求是 2 的幂,一样大 比如 3* 512* 512,或者3* 1024* 1024,图片越大对你电脑的要求越高。我本来准备的图片不是这样的,然后用Matlab转换了一下,变成了这个大小。
接着运行dataset_tool.py 就会转换格式成TFRecords, 然后进行训练。
train就是训练的文件,我说几个参数:
outdir 就是训练的结果的路径
gpus 就是你的显卡数量,我们服务器是两块
snap 就是隔多久显示一下目前的状态 ,默认是50,自己随便调整
data 就是数据,你刚刚生成的tfrecord的路径
kimg 可以理解为训练的时常,一般来说越长越好,主要还是看收敛的速度。你边训练边看状态,就知道收敛的怎么样了
resume 是是否要进行迁移学习,如果想在别人的模型基础上训练的话,就将别人的模型的路径赋值给他
metrics 好像是选择评判指标,我也不大确定
mirror 代码介绍说是图像增强的东西
dry run 是打印出你的参数,不运行程序,让你检查一下对不对
例子:

python train.py --kimg=1000 --outdir=/home/ai/result --mirror=1 --snap=50 --data=/home/ai/dataset/missile --gpus=2


fakes00000000是初始的样子
201 403 604等等就是越往后训练,训练出来的图片样子,不过这些都只是示例,你需要自己去运行generate函数去生成
pkl后缀的就是你的模型,数字分别对应训练到什么程度的模型
metric-fid0k_full 是训练的一个过程吧

最后一列越小越好,我这个显然还没有收敛,阔以增加 kimg再训练 ,或者加大学习率,不过我觉得人家既然没有把学习率搞出来让我修改,还是不要修改了,如果效果很差再修改。
我训练一次要20多个小时还是挺久的。
作者训练的样本最后这个值能达到2到3之间。
生成的图片就不展示了

stylegan2 浅层实现相关推荐

  1. J. Cheminform. | 基于化学基因组学中深度和浅层学习预测药物特异性

    今天给大家介绍由巴黎文理研究大学计算生物研究中心的Veronique Stoven教授课题组发表在J Cheminform上的一篇文章.作者提出一种具有深度学习功能的化学基因组神经网络(CN),以分子 ...

  2. java中浅层克隆和深层克隆

    1.浅复制与深复制概念  浅复制(浅克隆)      被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的 ...

  3. Tensorflow MNIST浅层神经网络的解释和答复

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/51416540 看到之前的一篇博文:深入 ...

  4. 深度学习(二十二)Dropout浅层理解

    Dropout浅层理解 原文地址:http://blog.csdn.net/hjimce/article/details/50413257 作者:hjimce 一.相关工作 本来今天是要搞<Ma ...

  5. 深度学习与神经网络关系(BP网络【浅层】与深层网络)

    文章目录 Deep Learning的基本思想 浅层学习(Shallow Learning)和深度学习(Deep Learning) 浅层学习是机器学习的第一次浪潮. 深度学习是机器学习的第二次浪潮. ...

  6. 第06课:浅层神经网络(NN)

    上一篇我们主要介绍了一些神经网络必备的基础知识,包括 Sigmoid 激活函数.损失函数.梯度下降和计算图.这些知识对我们学习神经网络非常有用!本文我们将开始真正的神经网络学习,从一个浅层的神经网络出 ...

  7. 吴恩达《神经网络与深度学习》精炼笔记(4)-- 浅层神经网络

    上节课我们主要介绍了向量化.矩阵计算的方法和python编程的相关技巧.并以逻辑回归为例,将其算法流程包括梯度下降转换为向量化的形式,从而大大提高了程序运算速度.本节课我们将从浅层神经网络入手,开始真 ...

  8. 斯坦福CS231n项目实战(四):浅层神经网络

    我的网站:红色石头的机器学习之路 我的CSDN:红色石头的专栏 我的知乎:红色石头 我的微博:RedstoneWill的微博 我的GitHub:RedstoneWill的GitHub 我的微信公众号: ...

  9. Coursera吴恩达《神经网络与深度学习》课程笔记(4)-- 浅层神经网络

    红色石头的个人网站:redstonewill.com 上节课我们主要介绍了向量化.矩阵计算的方法和python编程的相关技巧.并以逻辑回归为例,将其算法流程包括梯度下降转换为向量化的形式,从而大大提高 ...

最新文章

  1. linux中awk下 gsub函数用法
  2. CSDN问答频道“华章杯”7月排行榜活动开始,丰厚奖品等你拿
  3. Python-OpenCV 处理视频(三): 标记运动轨迹
  4. Boost:assume aligned假设对齐的测试程序
  5. 服务器复制不了文档,服务器复制粘贴不了
  6. scipy是python下的什么_SciPy是什么
  7. MXNet.gluon——图像I/O
  8. 分页缓冲池占用很高怎么解决_一次线上服务高 CPU 占用优化实践
  9. 手rm-linux联网后自动dhcp,Linux操作系统下DHCP基础配置
  10. 从病毒到“基础软件污染”,Linux 真的安全吗?
  11. 插件开发之360 DroidPlugin源码分析(二)Hook机制
  12. ubuntu版网易云音乐下载
  13. 软件开发人员是一种很棒的职业选择的五大理由
  14. WPF 背景透明文本不透明
  15. Unity3D自由摄像头视角旋转,平移,缩放
  16. 04、Hadoop框架HDFS NN、SNN、DN工作原理
  17. (D)TLS1.3大揭秘之TLS1.3总体概览
  18. 6.Python常用第三方库—jieba库的使用(中文分词词库)
  19. 入职华为外包一个月后,我离职向“北上广深”流浪了...
  20. 一个完整的机器学习项目需要哪些步骤

热门文章

  1. TeamViewer文件传输怎么用?
  2. 征信有逾期,还能贷到款?
  3. 贷款被拒多次,会影响征信吗?
  4. 【C++】2022:【例4.7】最小n值(信息学奥赛)
  5. Docker创建一个java程序镜像
  6. wd2003计算机考试,江苏省职称计算机考试OFFICE2003操作练习
  7. mx450和rtx3050哪个好
  8. Java未知个数求和,数字求和
  9. 2D照片制作3D特效动画AE模板 3D照片动画
  10. 抖音seo源码账号矩阵程序开发搭建?抖音seo搜索技术研发搭建部署