动手学深度学习——5. 数据清洗
动手学深度学习——5. 数据清洗
记录一下学习深度学习的一些。本篇简述如何使用 cleanlab 清洗分类数据
所使用环境:
- Ubuntu 16.04
- 8700K
- GeForce RTX 1080Ti
- Python 3.8
- Pytorch 1.7.1
- cleanlab 0.1.1
数据准备
首先将上篇所说的猫狗大战的训练集,按猫狗分为0/1两个目录,父目录命名为 train,接着将两类图片分类,按名字检索一下就可以分开。
因为图片的大小不一,所以在进行交叉验证训练的时候,将图片缩放至统一尺寸 224 × 224 224 \times 224 224×224,方便训练。
train_dataset = datasets.ImageFolder(traindir,transforms.Compose([transforms.Resize((224, 224)),transforms.RandomHorizontalFlip(),transforms.ToTensor(),normalize,]),
)val_dataset = datasets.ImageFolder(valdir,transforms.Compose([transforms.Resize((224, 224)),transforms.RandomHorizontalFlip(),transforms.ToTensor(),normalize,]),
)
数据清洗
交叉验证获取预测概率矩阵 psx
python train_crossval.py -a efficientnet-b6 -o output -j 4 -b 20 --epochs 10 --lr 0.001 --pretrained --world-size 1 --rank 0 --dist-url tcp://localhost:8001 --multiprocessing-distributed --cvn 5 --cv 0 --num-classes 2 data
修改参数 cv
,直至 k 折交叉验证均完成,相应的 out-of-sample 预测概率 P ^ k , i \hat{P}_{k,i} P^k,i 的 npy
文件会生成至 output
参数所指定的目录。这里有一点不同的是,官方提供的实例是使用 val 目录下的数据集来调优的,而我用交叉验证的 holdout 部分,所以效果可能会有所下降。
合并所有的 npy
文件,生成完整的 psx
python train_crossval.py -a efficientnet-b6 --cvn 5 -o output --num-classes 11 --combine-folds data
获取错误的标签及对应的原始标签
python get_error_labels.py --psx output/train__model_efficientnet-b6__pyx.npy -db output/test.db -t test data/train
查看结果
Overall accuracy: 98.12%
Total: 101
可以看到通过 cleanlab,25,000 张训练图像中有 101 的错误标注,通过图来验证一下。
原始标签为猫的,cleanlab 预测为狗的:
nrows = math.ceil(num_cats_dogs / ncols)
plt.figure(figsize=(24,16))
for i, (name, given, p_given, pred, p_pred) in enumerate(cats_dogs, start=1):path = os.path.join('data/train', '0', name)img = Image.open(path).convert("RGB")plt.subplot(nrows, ncols, i)plt.imshow(img)plt.axis('off')
plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0)
plt.show()
原始标签为狗,cleanlab 预测为猫的:
nrows = math.ceil(num_dogs_cats / ncols)
plt.figure(figsize=(24,16))
for i, (name, given, p_given, pred, p_pred) in enumerate(dogs_cats, start=1):path = os.path.join('data/train', '1', name)img = Image.open(path).convert("RGB")plt.subplot(nrows, ncols, i)plt.imshow(img)plt.axis('off')
plt.subplots_adjust(top=1,bottom=0,left=0,right=1,hspace=0,wspace=0)
plt.show()
可以看到上述结果中,有部分被标注错误了的,还有一部分的卡通图及其他非猫/狗图,还有一部分同时出现两种的,当然也还有有一部分出错了,但还是具有一定的参考意义。
将使用 cleanlab 清洗数据的流程写入了 sh,可以通过修改 sh 的相关变量,再调用 sh 来完成数据清洗。其中,train.sh 为单标签分类的清洗流程,train_m.sh 为多标签的清洗流程。
Code
- Script
动手学深度学习——5. 数据清洗相关推荐
- 「动手学深度学习」在B站火到没谁,加这个免费实操平台,妥妥天花板!
论 AI 圈活菩萨,非李沐老师莫属. 前有编写「动手学深度学习」,成就圈内入门经典,后又在B站免费讲斯坦福 AI 课,一则艰深硬核讲论文的视频播放量36万,不少课题组从导师到见习本科生都在追番. 如此 ...
- 《动手学深度学习》中文第二版预览版发布
点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨李沐@知乎 来源丨https://zhuanlan.zhihu ...
- 收藏 |《动手学深度学习》中文版PDF
对于初学者来说,直接阅读英文资料,效率慢,估计读着读着都没有信心读下去了.对于初学者,中文资料是再好不过了.今天小编就来安利一本中文资料--中文版本的<动手学深度学习>. 资料领取: 扫码 ...
- 深度学习经典教程:深度学习+动手学深度学习
作者:[美] Ian,Goodfellow(伊恩·古德费洛),[加] Yoshua,Bengio(约书亚·本吉奥)等 出版社:人民邮电出版社 品牌:异步图书 出版时间:2019-06-01 深度学习经 ...
- 资源 | 李沐等人开源中文书《动手学深度学习》预览版上线
来源:机器之心 本文约2000字,建议阅读10分钟. 本文为大家介绍了一本交互式深度学习书籍. 近日,由 Aston Zhang.李沐等人所著图书<动手学深度学习>放出了在线预览版,以供读 ...
- 最新版 | 2020李沐《动手学深度学习》
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 强烈推荐李沐等人的<动手学深度学习>最新版!完整中文版 PDF 终于 在 ...
- 动手学深度学习需要这些数学基础知识
https://www.toutiao.com/a6716993354439066124/ 本附录总结了本书中涉及的有关线性代数.微分和概率的基础知识.为避免赘述本书未涉及的数学背景知识,本节中的少数 ...
- 《动手学深度学习》PyTorch版GitHub资源
之前,偶然间看到过这个PyTorch版<动手学深度学习>,当时留意了一下,后来,着手学习pytorch,发现找不到这个资源了.今天又看到了,赶紧保存下来. <动手学深度学习>P ...
- 用PyTorch实现的李沐《动手学深度学习》,登上GitHub热榜,获得700+星
晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI 李沐老师的<动手学深度学习>是一本入门深度学习的优秀教材,也是各大在线书店的计算机类畅销书. 作为MXNet的作者之一,李沐老 ...
最新文章
- 3D惯导Lidar仿真
- mac下,svn配置
- 20+ 个很棒的 jQuery 文件上传插件或教程(此文值得“推荐”和“收藏”)
- 服务器应用服务为何卡顿?原来是内存耗尽惹的祸!
- 一个能自动搜索源文件并自动推导的Makefile
- Ubuntu桌面培训(Ubuntu Desktop Course)中文译本发布
- 软件工程第一次结对编程
- mysql5.6.28安装_mysql5.6.28源码安装
- python中sorted方法和列表的sort方法使用详解
- [backbone] Getting Started with Backbone.js
- mysql 账户管理_MySql 账户管理
- flash 加载外部flash怎么卸载干净
- 谷歌邮箱lmap服务器填什么_Gmail/QQ邮箱/163邮箱等各大邮箱IMAP/SMTP/POP3地址
- 虚拟云服务器能调用本地摄像头,云服务器本地摄像头
- 彩色飘带字体怎么制作?AE教程教给你
- Apple现行公开的framework简介
- 一加手机android auto,一加手机怎么升级安卓5.0系统
- python输入end退出循环_python练习:从入门到实践——用户输入和while循环
- PHP生成海报 文字描边,海报字体 怎么为海报字体添加描边样式?海报文字描边怎么做?海报字体描边样式制作...
- SEO必备的利器–iMacros