| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 彩色星球图片生成5:先验条件约束与LapGAN(pytorch版) -> 正文阅读 |
|
[人工智能]彩色星球图片生成5:先验条件约束与LapGAN(pytorch版) |
彩色星球图片生成5:先验条件约束与LapGAN(pytorch版)上一集:彩色星球图片生成4:转置卷积+插值缩放+卷积收缩(pytorch版) 在上一集代码的基础上,重构了代码结构,从而实验了更加多样化的生成。 本章大量内容为无指导情况下的个人理解,如有错误,欢迎大佬指出帮助纠正。 训练集图片(共328张,来自于Space Engine): 1. 改进方面1.1 训练集信息的人工标注设定了一些相关的图片信息,为了便于标注,开发了一个可视化图形界面用于标注图片信息,然后自动写入CSV文件。 1.2 先验信息的条件约束将条件向量转换为输入的方式很简单: 1.3 分类器C为了自动化筛选输出,设置了一个分类器C作为自动化选择版本的指标。 注:此处使用分类器C的做法不具备严格的论证!也不具备严密的理论基础!仅仅是在操作简便性上比较好用!如果追求更加严密的选择方式和实际效果,网上有很多相关的学术论文与判断方式可以学习!你可以按照那些资料的方式来更好地选择你的评估参数,这里只是出于编码简便,没有用复杂的方法! 生成器G接收条件向量与噪声/前置图片作为输入,根据条件输出图片。 分类器C只使用真实图片进行训练,但是它会对生成器的图片进行条件输出,由于LapGAN中的高分辨率图片是基于低分辨率图片生成,此处姑且认为使用真实训练集的低分辨率图片输入时,生成器给出的高分辨率图片输出应该尽可能接近对应真实训练集的高分辨率图片。即,如果分类器C在训练集高分辨率图片上分析条件的loss接近0,那么对生成器相同低分辨率图片输入后得到的高分辨率图片,loss也应该越低越好。 这个想法没有严格的证明,只是编码简便,而且实际使用中对迭代训练版本的自动筛选最优版本效果还行。 1.4 LapGAN的分层残差拟合参考:LAPGAN论文解析 首先把原始训练集缩放到1024x1024的尺寸,然后将它逐层缩小,每一层长宽是上一层的一半,直到变成8x8,保存每一层的图片到磁盘作为训练数据。 注:这里的缩放不是常用的缩放算法,参考LapGAN的实现,每一层的1个像素都对应上一层的2x2像素块,此时这个像素的值其实是2x2像素块中4个像素的均值。 第1层生成器完全由2-3个线性层构成,接收一个条件向量和一段正态分布的随机噪声,然后生成8x8的图像。 后续每一层的生成器都接收一个低分辨率的训练集图片作为输入,在输入图像上叠加一个条件向量转换来的通道,再叠加一个提供随机信息的高斯噪声通道,输出一个长宽翻倍的高分辨率图像,与真实数据集中的高分辨率图像一起输入判别器进行训练。 它会将输入图片通过最近邻插值的方式放大到两倍长宽,然后神经网络的输出为这个图像与真实图像之间的残差图像。 与此同时,因为这个过程完全没有使用转置卷积层,因此完全不会存在转置卷积层导致的生成图像中出现网格状棋盘图像的问题! 个人看法,此处可能有两种分支: 1、串联,使用前面的生成器输出图片作为后面的生成器的输入 2、并行,只使用真实训练集中不同分辨率的图片作为生成器输入 本次实现中暂时使用了并行的方式。 2. 代码实现该版本代码略。 一方面,是因为每层生成器都有相应代码,导致该版本的完整项目代码过长已经不适合放在博客文章里。 3. 最终效果在可视化标注工具的基础上修修改改,弄了一个可视化的条件约束生成器,按钮功能一目了然。 3.1 层层递进的生成通过固定随机数种子,可以展示一个高分辨率图像被一层层生成的过程。 3.2 其它生成样式的展示
4. 缺陷与下一步改进生成的多样化上虽然碾压了过去的版本,而且完全解决了生成图像中棋盘效应和网格状点的问题,但是生成质量的细节上却有些比不过上一次的版本,特别是并行训练导致的错误放大问题。 有些遗憾,终于正式开始上班后,工作没能做ai方面的内容,不过仍然会将其作为业余的兴趣爱好继续研究下去,新版本的生成模型已经作为自己的聊天机器人的插件成功使用,用于丰富日常的群聊内容~ 虽然上班后空余时间不多,而且现在训练也越来越耗费时间,导致更新可能会很慢……不过还是会试着在下一个版本中使用更多的方式进行优化,敬请期待。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 20:20:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |