PyTorch进行深度学习

tensorboard的使用

###代码:
导入需要的包
from tensorboardX import SummaryWriter
创建数据编写器
w=SummaryWriter()
定义需要可视化的函数
这里使用sin函数(import math)
for angle in range(-360,360):
	x=angle*math.pi/180
	y=math.sin(x)
	w.add_scalar("sin",y,angle)
结束之后一定要关掉编写器否则仍会定期更新
w.close()
###命令:
先是运行py代码,随后tensorboard --logdir runs
点开出现的链接即可看到

PyTorch进行深度学习_第1张图片

将GAN应用于Atari图像

一个训练GANs生成各种Atari游戏屏幕截图的思路
有两个网络,一个充当判别器,一个充当生成器。两个网络相互竞争,生成器试图伪造数据
使其与原数据集难以区分开,判别器负责检测生成的数据样本
#包装器:图像尺寸210*160-->64*64正方形,图像的颜色平面从最后一个位置移到第一个位置,
以满足卷积层约定,bytes转换为float
需要定义一个函数:得到一组真实的游戏图像作为true数据
#训练思路:
判别器:给真实数据附上true标签,生成器生成的false数据附上假标签开始训练
(记得带上detach()函数防止此次训练的梯度流入生成器模型),计算损失,
做梯度下降....
生成器:将生成器之前生成的假数据应用于判别器模型得到的值附上真标签进行训练,
此次不带detach()函数,训练生成器,向生成可欺骗判别器的样本的方向发展
过程中持续记录损失和生成的图像在tensorboard

在cpu上训练很漫长。。。如下是生成器和判别器的loss图,图像还需等待一段时间。
PyTorch进行深度学习_第2张图片PyTorch进行深度学习_第3张图片PyTorch进行深度学习_第4张图片
PyTorch进行深度学习_第5张图片

 writer.add_image("fake", vutils.make_grid(
                gen_output_v.data[:64], normalize=True), iter_no)
            writer.add_image("real", vutils.make_grid(
                batch_v.data[:64], normalize=True), iter_no)

以上是将图片加入tensorboard的代码,涉及到两个函数,make_grid和add_image
前者用于制作网格并显示
后者是将图片加入tensorboard

持续更新中。。。。。

你可能感兴趣的:(rl,深度学习,python)