pytorch GAN生成对抗网络实例


Posted in Python onJanuary 10, 2020

我就废话不多说了,直接上代码吧!

import torch
import torch.nn as nn
from torch.autograd import Variable
import numpy as np
import matplotlib.pyplot as plt

torch.manual_seed(1)
np.random.seed(1)

BATCH_SIZE = 64
LR_G = 0.0001
LR_D = 0.0001
N_IDEAS = 5
ART_COMPONENTS = 15
PAINT_POINTS = np.vstack([np.linspace(-1,1,ART_COMPONENTS) for _ in range(BATCH_SIZE)])

def artist_works():
	a = np.random.uniform(1,2,size=BATCH_SIZE)[:,np.newaxis]
	paintings = a*np.power(PAINT_POINTS,2) + (a-1)
	paintings = torch.from_numpy(paintings).float()
	return Variable(paintings)

G = nn.Sequential(
	nn.Linear(N_IDEAS,128),
	nn.ReLU(),
	nn.Linear(128,ART_COMPONENTS),
)

D = nn.Sequential(
	nn.Linear(ART_COMPONENTS,128),
	nn.ReLU(),
	nn.Linear(128,1),
	nn.Sigmoid(),
)

opt_D = torch.optim.Adam(D.parameters(),lr=LR_D)
opt_G = torch.optim.Adam(G.parameters(),lr=LR_G)

plt.ion()

for step in range(10000):
	artist_paintings = artist_works()
	G_ideas = Variable(torch.randn(BATCH_SIZE,N_IDEAS))
	G_paintings = G(G_ideas)

	prob_artist0 = D(artist_paintings)
	prob_artist1 = D(G_paintings)

	D_loss = - torch.mean(torch.log(prob_artist0) + torch.log(1-prob_artist1))
	G_loss = torch.mean(torch.log(1 - prob_artist1))

	opt_D.zero_grad()
	D_loss.backward(retain_variables=True)
	opt_D.step()

	opt_G.zero_grad()
	G_loss.backward()
	opt_G.step()

	if step % 50 == 0:
		plt.cla()
		plt.plot(PAINT_POINTS[0],G_paintings.data.numpy()[0],c='#4ad631',lw=3,label='Generated painting',)
		plt.plot(PAINT_POINTS[0],2 * np.power(PAINT_POINTS[0], 2) + 1,c='#74BCFF',lw=3,label='upper bound',)
		plt.plot(PAINT_POINTS[0],1 * np.power(PAINT_POINTS[0], 2) + 0,c='#FF9359',lw=3,label='lower bound',)
		plt.text(-.5,2.3,'D accuracy=%.2f (0.5 for D to converge)' % prob_artist0.data.numpy().mean(), fontdict={'size':15})
		plt.text(-.5, 2, 'D score= %.2f (-1.38 for G to converge)' % -D_loss.data.numpy(), fontdict={'size': 15})
		plt.ylim((0,3))
		plt.legend(loc='upper right', fontsize=12)
		plt.draw()
		plt.pause(0.01)

plt.ioff()
plt.show()

pytorch GAN生成对抗网络实例

以上这篇pytorch GAN生成对抗网络实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中enumerate的用法实例解析
Aug 18 Python
Python内置的字符串处理函数详细整理(覆盖日常所用)
Aug 19 Python
自己使用总结Python程序代码片段
Jun 02 Python
在Django中创建URLconf相关的通用视图的方法
Jul 20 Python
Python中MySQLdb和torndb模块对MySQL的断连问题处理
Nov 09 Python
Django网络框架之创建虚拟开发环境操作示例
Jun 06 Python
检测python爬虫时是否代理ip伪装成功的方法
Jul 12 Python
django 框架实现的用户注册、登录、退出功能示例
Nov 28 Python
python时间与Unix时间戳相互转换方法详解
Feb 13 Python
windows上彻底删除jupyter notebook的实现
Apr 13 Python
Python OrderedDict字典排序方法详解
May 21 Python
python搜索算法原理及实例讲解
Nov 18 Python
解决pytorch报错:AssertionError: Invalid device id的问题
Jan 10 #Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
Jan 10 #Python
mac使用python识别图形验证码功能
Jan 10 #Python
python列表推导和生成器表达式知识点总结
Jan 10 #Python
pytorch的梯度计算以及backward方法详解
Jan 10 #Python
Python如何获取Win7,Win10系统缩放大小
Jan 10 #Python
python-OpenCV 实现将数组转换成灰度图和彩图
Jan 09 #Python
You might like
php csv操作类代码
2009/12/14 PHP
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
基于jquery的jqDnR拖拽溢出的修改
2011/02/12 Javascript
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
jquery js 重置表单 reset()具体实现代码
2013/08/05 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
jQuery EasyUI之DataGrid使用实例详解
2016/01/04 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
JS实现的合并多个数组去重算法示例
2018/04/11 Javascript
vue项目引入Iconfont图标库的教程图解
2018/10/24 Javascript
Python新手入门最容易犯的错误总结
2017/04/24 Python
python实现人脸识别经典算法(一) 特征脸法
2018/03/13 Python
python和opencv实现抠图
2018/07/18 Python
使用11行Python代码盗取了室友的U盘内容
2018/10/23 Python
深入了解Django中间件及其方法
2019/07/26 Python
pygame实现贪吃蛇游戏(下)
2019/10/29 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
appium+python adb常用命令分享
2020/03/06 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
King Apparel官网:英国街头服饰品牌
2019/09/05 全球购物
美国沃尔玛网上超市:Walmart
2020/08/14 全球购物
康拓普公司Java笔面试
2016/09/23 面试题
SQL Server面试题
2013/04/04 面试题
一些Solaris面试题
2015/12/22 面试题
医学生实习自荐信
2013/10/01 职场文书
自我鉴定的范文
2013/10/03 职场文书
优良学风班申请材料
2014/02/13 职场文书
秋季校运动会广播稿
2014/02/23 职场文书
中考标语大全
2014/06/05 职场文书
计算机应用应届生求职信
2014/07/12 职场文书
追悼会悼词大全
2015/06/23 职场文书
使用goaccess分析nginx日志的详细方法
2021/07/09 Servers
NGINX 权限控制文件预览和下载的实现原理
2022/01/18 Servers