前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >DF-GAN实验复现——复现DFGAN详细步骤 及使用MobaXtem实现远程端口到本机端口的转发查看Tensorboard

DF-GAN实验复现——复现DFGAN详细步骤 及使用MobaXtem实现远程端口到本机端口的转发查看Tensorboard

原创
作者头像
中杯可乐多加冰
发布2025-02-08 23:36:48
发布2025-02-08 23:36:48
8000
代码可运行
举报
运行总次数:0
代码可运行

文本到图像合成的两个主要挑战是生成图像的真实性,以及给定文本和生成图像之间的语义一致性。

为了解决GAN模型的不稳定性,以往的模型都采用堆叠结构(一般三层)作为主干,然后使用DAMSM(AttnGAN)、循环结构(MirrorGAN)、孪生结构(SD-GAN)这些额外的网络保持文本图像的语义一致性。

但是仍存在三个问题:

堆叠结构引发了不同生成器之间的纠缠,使得最终优化的图像看起来像是模糊形状和一些细节的简单组合。

现有研究通常在训练期间不断调整额外的网络,使其更被生成器愚弄,从而合成对抗性特征,但是这会削弱它们对语义一致性的监督能力。(换句话说就是,现有研究通常会牺牲额外网络的文本对齐部分性能去达到图像合成效果)

由于计算量大,跨模态注意力(比如AttnGAN的注意力机制)往往只能在64×64或者128×128的尺度上应用,限制了文本与图像融合的有效性。为此,DF-GAN应运而生。

DF-GAN是南京邮电大学、苏黎世联邦理工学院、武汉大学等学者共同研究开发的一款简单且有效的文本生成图像模型,文章已被CVPR 2022 Oral录用。 DF-GAN最近发布了2022最新版本的代码,代码支持在训练期间自动进行 FID 评估,模型性能和效果很好。 论文地址:https://arxiv.org/abs/2008.05865 代码地址:https://github.com/tobran/DF-GAN

MobaXterm 又名 MobaXVT,是一款增强型终端、X 服务器和 Unix 命令集(GNU/ Cygwin)工具箱,是远程操作服务器的优质工具,本篇将使用MobaXterm对DF-GAN进行复现。

一、下载代码及数据

1、使用git clone https://github.com/tobran/DF-GAN.git下载DF-GAN最新代码,下载后结构如下:

在这里插入图片描述
在这里插入图片描述

2、下载鸟数据集的元处理数据:https://drive.google.com/file/d/1I6ybkR7L64K8hZOraEZDuHh0cCJw5OUj/view?usp=sharing 元数据包下载完毕后如下图所示:

在这里插入图片描述
在这里插入图片描述

将元数据包的文件放入到DF-GAN/data/birds目录下,如图所示:

在这里插入图片描述
在这里插入图片描述

3、下载CUB-Bird鸟图像数据集,下载链接: http://www.vision.caltech.edu/visipedia/CUB-200-2011.html,并将其保存在并将其保存在data/birds/中,最终如图所示:

在这里插入图片描述
在这里插入图片描述

二、配置环境

创建虚拟环境,然后进入DF-GAN目录 ,使用命令行:pip install -r requirements.txt安装必备的环境,也可以手动安装(不推荐),环境要求如下:

在这里插入图片描述
在这里插入图片描述

三、训练

对于鸟类数据集,进入DF-GAN/code目录,命令行输入:bash scripts/train.sh ./cfg/bird.yml,当出现类似如下情况则说明训练过程正常运行。

在这里插入图片描述
在这里插入图片描述

如果命令行输入的是以上格式,需要MobaXtem一直在线连接,给输出提供传输信道,本地关机后程序就会终止,那么我们可以使用nohup命令将输出放入output.txt:

代码语言:javascript
代码运行次数:0
复制
nohup bash scripts/train.sh ./cfg/bird.yml >output.txt 2>&1 &

但是这种方式,在运行一段时间后,会把output.txt写的非常非常大,占用几个G的空间。既然DF-GAN提供了Tensorboard,我们干脆不写进output.txt了,直接使用Tensorboard监控就行,于是我们把输出写进/dev/null,(dev/null就是一个黑洞,所有写进这个目录的文件都会凭空消失)命令如下:

代码语言:javascript
代码运行次数:0
复制
 nohup bash scripts/train.sh ./cfg/bird.yml >/dev/null 2>&1 &

四、使用Tensorboard监控数据

DF-GAN最新版本的代码支持在训练期间自动进行 FID 评估,结果存储在 ./logs 下的 TensorBoard 文件中,在命令行输入:tensorboard --logdir=./code/logs/bird/train --port 8166,会显示如下:

在这里插入图片描述
在这里插入图片描述

然后利用MobaXterm建立ssh隧道(使用本机复现实验的话不需要看后面的步骤,直接访问http://127.0.0.1:8166/),实现远程端口到本机端口的转发,打开tunneling:

在这里插入图片描述
在这里插入图片描述

新建SSH通道:

在这里插入图片描述
在这里插入图片描述

填入端口和用户名

在这里插入图片描述
在这里插入图片描述

点击start开始转发:

在这里插入图片描述
在这里插入图片描述

然后就可以在本机访问http://127.0.0.1:8166/,查看tensorboard了,

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、下载代码及数据
  • 二、配置环境
  • 三、训练
  • 四、使用Tensorboard监控数据
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档