复现·CoGAN(域适应任务)

简介

根据CoGAN作者的官方开源实现了CoGAN的数字集域适应任务。
开源地址:https://github.com/mingyuliutw/CoGAN\color{red}{\small \bf star:241}
开源代码的分析见机器学习·CoGAN开源解析

关键字

CoGAN、域适应、深度学习、神经网络、机器学习、复现

正文

1. 概述

  前天解析了大神开源,原来打算把作者大神的官方代码拿来跑跑看看结果就行,结果由于本地环境与开源代码的环境差异有点大,各种尝试未果,决定参考官方代码自行实现。按照昨天总结深度学习算法实现的一般套路(pytorch)的结构,按照数据处理,模型定义,参数更新,模型选择4部分来复现。本地环境:python3.7.5,pytorch1.3.1,torchvision0.4.2;1080Ti,cuda10。

2. 数据

  数字集两个mnist,usps,第一个mnist使用torchvision.datasets自带的MNIST是28*28的,直接使用就好,其中训练集样本数量60000,测试集样本数量10000;第二个usps集在torchvision.datasets里也有,但是早期torchvision.datasets版本是没有的,在torchvision.datasets内的usps是16*16的。作者使用的是自己处理好的usps数据集,以及处理好28*28,可以从作者官方开源的网址获取,其中训练集样本数量7438,测试集样本数量1860。

3. 实现概要

  一共9个文件,分述如下:
  config.py:配置,主要包括迭代次数,快照间隔,批数量,损失平衡系数,任务选择,随机种子等。
  get_dataloader.py:读取数据,输出3个dataloader对象,分别是A域训练集(含标签),B域训练集(不含标签),B域测试集(不含标签)。
  init.py:对模型参数的初始化,定义了两种,高斯和Xavier,供Trainer内对模型进行初始化,这边只用了Xavier的初始化方式。
  main.py:主函数,读取config.py,然后执行slover.py就完了。
  model.py:基本照搬官方开源代码,提供了模型的网络结构。
  solver.py:参考开源自行实现。作用是声明Trainer对象,使用Trainer的更新参数行为训练判别器、生成器、分类器。按照快照间隔使用B域测试集测试分类准确率。直到最大迭代次数。
  trainer.py:包装了模型及其模型的行为,也就是一次参数更新。
  usps.py:基本照搬官方开源代码,对usps数据源进行处理,形成dataset类型的数据对象。
  utils.py:按照随机种子,固定程序的一些随机行为。

4. 结果

  任务:在A域训练集(含标签),B域训练集(不含标签)上训练,在B域(不含标签)的测试集上测试,指标为分类准确率。做了2个任务在mnist上训练,在usps上测试,最高准确率为95.97%;在usps上训练,在mnist上测试,最高准确率为94.34%。最大迭代次数10000,每100次进行一次测试,如图,上图是m2u,下图是u2m,纵轴是准确率,单位是1%;横轴是次数,单位是10^2。


m2u.jpg
u2m.jpg

参考资料

[1] Liu M Y, Tuzel O. Coupled generative adversarial networks[C]//Advances in neural information processing systems. 2016: 469-477.
[2] https://github.com/mingyuliutw/CoGAN
[3] https://www.jianshu.com/p/5b31cc80e3a2
[4] https://www.jianshu.com/p/c02b5567655e
[5] https://www.jianshu.com/p/a534e0e50d10

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,492评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,048评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,927评论 0 358
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,293评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,309评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,024评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,638评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,546评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,073评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,188评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,321评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,998评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,678评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,186评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,303评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,663评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,330评论 2 358

推荐阅读更多精彩内容