相信大家都有听过GAN的名子,
原理就好像同时有一名创作家及一名监定员,
创作家进行创造,而监定员进行监定,
两者有各自跟原始作品的损失函数,
利用损失资讯的大小,以优化器来修正创作家创作的方向以及监定员监定的依据。
参考攻略:
https://www.tensorflow.org/tutorials/generative/dcgan?hl=zh_tw
安装及载入:
imageio套件是为了让训练过程以动画的方式来呈现。
载入手写数字资料集:
将图片转成28×28像素,每一个像素正规化成-1到1之间的数值:
调整batch大小,并且改变训练资料的排序:
建立生成器:
输入为100维的矩阵,我们可以先查看未训练的生成结果:
搭建判别器:
输出结果为正数代表认定为真品,负数认定生成作品为假的,
不过目前还没训练,所以结果不具有意义:
创立生成器及判别器各自的损失函数:
设定各自的优化器:
载入过去别人训练好的储存点,降低训练时间,
自己重新训练也可以:
设定初始生成画作的随机数值,并且一次生成16张图片:
设定生成对抗的过程,优化器依据生成器及判别器各自的损失资讯来修正生成及判别方向:
搭建function,依据epochs来进行生成对抗的训练:
将每一个epochs的训练结果保存起来:
开始训练:
那可以将训练过程以动画的方式来呈现:
假设哪一天需要依靠贩卖艺术品维生,
但是又没有艺术天份,
这个时候就可以请GAN来帮我们创作艺术作品了。
下面的攻略有对浪漫时期的作品进行创作:
https://www.kaggle.com/amyjang/creating-romantic-period-art-w-tensorflow-dcgan
该资料集还有表现主义及立体主义的作品可以参考。
那这个攻略是对於彩色图片CIFAR10资料集进行创作:
https://machinelearningmastery.com/how-to-develop-a-generative-adversarial-network-for-a-cifar-10-small-object-photographs-from-scratch/
<<: Day-22 创新才是正义!带领任天堂重返荣耀的 Wii
Python非同步需要使用到asyncio,简单测试如下 import asyncio import...
Ktor Authentication Plugin 因为 Ktor 的开发风格是 DSL,不依赖 ...
学组语的目的,不见得是为了改善效能,而是: 判断 optimizing compiler 产生的机...
这边是 Chart.js 的小练习,主要就是模拟股票上上下下的线图。 安装 npm install ...
续 Day 6。 强列建议阅读本文之前要先去看 Day 4 - Snapshot Isolatio...