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和C++求解方法
Aug 20 Python
Python实现求两个csv文件交集的方法
Sep 06 Python
Python基于SMTP协议实现发送邮件功能详解
Aug 14 Python
对Python中内置异常层次结构详解
Oct 18 Python
python实现flappy bird小游戏
Dec 24 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
Jun 13 Python
在python image 中安装中文字体的实现方法
Aug 22 Python
解决Keras中CNN输入维度报错问题
Jun 29 Python
Python装饰器结合递归原理解析
Jul 02 Python
Python使用urlretrieve实现直接远程下载图片的示例代码
Aug 17 Python
利用Python第三方库实现预测NBA比赛结果
Jun 21 Python
pandas求平均数和中位数的方法实例
Aug 04 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中使用Oracle数据库(4)
2006/10/09 PHP
php多层数组与对象的转换实例代码
2013/08/05 PHP
PHP中模拟处理HTTP PUT请求的例子
2014/07/22 PHP
php计算整个mysql数据库大小的方法
2015/06/19 PHP
在Debian系统下配置LNMP的教程
2015/07/09 PHP
深入php内核之php in array
2015/11/10 PHP
Javascript常用运算符(Operators)-javascript基础教程
2007/12/14 Javascript
JavaScript 注册事件代码
2011/01/27 Javascript
js 获取屏幕各种宽高的方法(浏览器兼容)
2013/05/15 Javascript
jQuery实现列表自动滚动循环滚动展示新闻
2014/08/22 Javascript
Java中Timer的用法详解
2015/10/21 Javascript
JavaScript简单实现弹出拖拽窗口(二)
2016/06/17 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
2016/12/02 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
使用react context 实现vue插槽slot功能
2019/07/18 Javascript
JS实现滑动插件
2020/01/15 Javascript
Python实现Linux的find命令实例分享
2017/06/04 Python
详解关于Django中ORM数据库迁移的配置
2018/10/08 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
2019/11/30 Python
python实现FTP循环上传文件
2020/03/20 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
video实现有声音自动播放的实现方法
2020/05/20 HTML / CSS
达拉斯牛仔官方商店:Dallas Cowboys Pro Shop
2018/02/10 全球购物
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
prAna官网:瑜伽、旅行和冒险服装
2019/03/10 全球购物
亚马逊巴西站:Amazon.com.br
2019/09/22 全球购物
办公室主任主任岗位责任制
2014/02/11 职场文书
合作协议书怎么写
2014/04/18 职场文书
期末复习计划
2015/01/19 职场文书
数学教师个人总结
2015/02/06 职场文书
毕业设计致谢词
2015/05/14 职场文书
家访教师心得体会
2016/01/23 职场文书
旅游安全责任协议书
2016/03/22 职场文书
详解Spring事件发布与监听机制
2021/06/30 Java/Android