AI 开源项目分享:PyTorch 的语义分割及最快的非结构化数据集等

star2017 1年前 ⋅ 2565 阅读

文末彩蛋:七月在线干货组最新升级的《2021 大厂最新 AI 面试题 [含答案和解析, 更新到前 121 题]》免费送!

项目一:semantic-segmentation-tutorial-pytorch 使用 Cityscapes 进行语义分割的 PyTorch 代码库

项目地址:
https://github.com/hoya012/semantic-segmentation-tutorial-pytorch

使用 PyTorch 的语义分割教程。基于 2020 ECCV VIPriors Challange 起始代码,实现了语义分段代码库并添加了一些技巧。

下载数据集(来自 CityScapes 的 MiniCity):

我们将使用 Cityscapes 的 MiniCity 数据集。此数据集用于 2020 ECCV VIPriors 挑战。

数据集下载(Google 驱动器)

https://drive.google.com/file/d/1YjkiaLqU1l9jVCVslrZpip4YsCHHlbNA/view?usp=sharing 将数据集移动到 minicity 文件夹中。

训练基线模型:

  • 使用来自 torchvision 的 DeepLabV3。
  • ResNet-50 骨干网,ResNet-101 骨干网
  • 使用 4 个 RTX 2080 Ti GPU。(11GB x 4)

损失函数:

  • 尝试了 3 种损失函数。
  • 交叉熵损失
  • 类加权交叉熵损失
  • 焦点损失
  • 可以使用--loss 参数选择损失函数。

归一化层:

  • 尝试了 4 归一化层。
  • 批次归一化(BN)
  • 实例规范化(IN)
  • 组归一化(GN)
  • 不断发展的标准化(EvoNorm) 可以使用--norm 参数选择归一化层。

增强技巧:

提出 2 种数据增强技术(CutMix,copyblob)
在这里插入图片描述
在这里插入图片描述

模型效果:
在这里插入图片描述

最终的单一模型结果是 0.6069831962012341。在排行榜上排名第五。

项目二:PaddleX『飞桨』深度学习全流程开发工

项目地址:
https://github.com/PaddlePaddle/PaddleX

PaddleX 集成飞桨智能视觉领域图像分类、目标检测、语义分割、实例分割任务能力,将深度学习开发全流程从数据准备、模型训练与优化到多端部署端到端打通,并提供统一任务 API 接口及图形化开发界面 Demo。开发者无需分别安装不同套件,以低代码的形式即可快速完成飞桨全流程开发。
在这里插入图片描述
addleX 经过质检、安防、巡检、遥感、零售、医疗等十多个行业实际应用场景验证,沉淀产业实际经验,并提供丰富的案例实践教程,全程助力开发者产业实践落地。

PaddleX 提供三种开发模式,满足用户的不同需求:

Python 开发模式:通过简洁易懂的 Python API,在兼顾功能全面性、开发灵活性、集成方便性的基础上,给开发者最流畅的深度学习开发体验。
前置依赖

paddlepaddle >= 1.8.4

python >= 3.6

cython

pycocotools

  • Padlde GUI 模式:无代码开发的可视化客户端,应用 Paddle
    API 实现,使开发者快速进行产业项目验证,并为用户开发自有深度学习软件/应用提供参照。
  • PaddleX Restful:使用基于 RESTFul API 开发的 GUI 与 Web
    Demo 实现远程的深度学习全流程开发;同时开发者也可以基于 RESTFul API 开发个性化的可视化界面

模块说明:

  • 数据准备:兼容 ImageNet、VOC、COCO 等常用数据协议,同时与 Labelme、精灵标注助手、EasyData 智能数据服务平台等无缝衔接,全方位助力开发者更快完成数据准备工作。
  • 数据预处理及增强:提供极简的图像预处理和增强方法--Transforms,适配 imgaug 图像增强库,支持上百种数据增强策略,是开发者快速缓解小样本数据训练的问题。
  • 模型训练:集成 PaddleClas, PaddleDetection,
    PaddleSeg 视觉开发套件,提供大量精选的、经过产业实践的高质量预训练模型,使开发者更快实现工业级模型效果。
  • 模型调优:内置模型可解释性模块、VisualDL 可视化分析工具。使开发者可以更直观的理解模型的特征提取区域、训练过程参数变化,从而快速优化模型。
  • 多端安全部署:内置 PaddleSlim 模型压缩工具和模型加密部署模块,与飞桨原生预测库 Paddle
  • Inference 及高性能端侧推理引擎 Paddle Lite 无缝打通,使开发者快速实现模型的多端、高性能、安全部署。

项目三:tsmoothie 用于以向量化方式进行时间序列平滑和离群值检测的 python 库

项目地址:
https://github.com/cerlymarco/tsmoothie

tsmoothie 以快速有效的方式计算单个或多个时间序列的平滑度。
在这里插入图片描述



可用的平滑技术是:

  • List item
  • 指数平滑
  • 具有各种窗口类型(常量,hanning,hamming,bartlett,blackman)的卷积平滑
  • 使用傅立叶变换进行频谱平滑
  • 多项式平滑
  • 各种样条平滑(线性,三次,自然三次)
  • 高斯平滑
  • Binner 平滑
  • LOWESS
  • 各种季节性分解平滑(卷积,最低,自然三次样条)
  • 带有可自定义组件(水平,趋势,季节性,长期季节性)的卡尔曼平滑

tsmoothie 提供了平滑处理结果的间隔计算。这对于识别时间序列中的异常值和异常可能很有用。

关于使用的平滑方法,可用的间隔类型为:

  • sigma 间隔
  • 置信区间
  • 预测间隔
  • 卡尔曼区间

tsmoothie 可以执行滑动平滑方法来模拟在线使用。可以将时间序列分成相等大小的片段,并分别对其进行平滑处理。与往常一样,此功能是通过 WindowWrapper 类以向量化的方式实现的。tsmoothie 可以通过 BootstrappingWrapper 类来操作时间序列引导程序。

支持的引导程序算法为:

  • 没有重叠的块引导程序
  • 移动块引导程序
  • 圆块引导程序
  • 固定式引导
    在这里插入图片描述

项目四:RecBole 统一,全面,高效的推荐库

项目地址:
https://github.com/cerlymarco/tsmoothie

RecBole 是一个基于 PyTorch 实现的,面向研究者的,易于开发与复现的,统一、全面、高效的推荐系统代码库。我们实现了 72 个推荐系统模型,包含常见的推荐系统类别,如:

  • General Recommendation
  • Sequential Recommendation
  • Context-aware Recommendation
  • Knowledge-based Recommendation

我们约定了一个统一、易用的数据文件格式,并已支持 28 个 benchmark dataset。用户可以选择使用我们的数据集预处理脚本,或直接下载已被处理好的数据集文件。

特色:

  • 通用和可扩展的数据结构 我们设计了通用和可扩展的数据结构来支持各种推荐数据集统一化格式和使用。
  • 全面的基准模型和数据集 我们实现了 72 个常用的推荐算法,并提供了 28 个推荐数据集的格式化副本。
  • 高效的 GPU 加速实现 我们针对 GPU 环境使用了一系列的优化技术来提升代码库的效率。
  • 大规模的标准评测 我们支持一系列被广泛认可的评估方式来测试和比较不同的推荐算法。

RecBole 可以在以下几种系统上运行:

  • Linux
  • Windows 10
  • macOS X

RecBole 需要在 python 3.6 或更高的环境下运行。

RecBole 要求 torch 版本在 1.6.0 及以上,如果你想在 GPU 上运行 RecBole,请确保你的 CUDA 版本或 CUDAToolkit 版本在 9.2 及以上。这需要你的 NVIDIA 驱动版本为 396.26 或以上(在 Linux 系统上)或者为 397.44 或以上(在 Windows10 系统上)。

项目五:HubTensorFlow / PyTorch 最快的非结构化数据集管理

项目地址:
https://github.com/activeloopai/Hub

新时代的的软件需要新时代的数据,而 Hub 提供这些数据。数据科学家与机器学习研究者常常花费大量时间管理与预处理数据,因而牺牲了训练模型的时间。为了改进这一现状,我们创造了 Hub 。我们将您可达 PB 量级的数据转换为单个类 numpy 数组,将其存储在云端,使您可以无缝地从任何设备访问您的数据。Hub 使任何储存在云端的数据类型(图像、文本、音频或视频)像在本地服务器一样能被快速使用。通过使用一致的数据集,您的小组可以一直保持同步。

特点:

  • 通过版本控制工具储存和获取大型数据集
  • 像 Google Docs 一样协作: 多个数据科学家不间断地同时处理一组数据
  • 同时从多个设备访问
  • 部署在任何地方 - 本地、Google Cloud、S3、Azure 或是 Activeloop (默认——并且免费!)
  • 与您的机器学习工具整合, 比如 Numpy、Dask、Ray、PyTorch 或 TensorFlow
  • 随心所欲地创建任意大小的数组。 您甚至可以储存 100k x 100k 大小的图片!
  • 样本的形状是动态的。 因此您可以把不同大小的数组储存在一个数组内
  • 无需冗长的操作,用几秒种即可可视化数据中的片段

访问公共数据:

用 Hub 访问公共数据集仅仅需要几行约定俗成的简单代码。运行这个片段就可以 numpy 数组的形式取得 MNIST 数据集前 1000 张图片。

训练模型:

加载数据并直接训练您的模型。Hub 已经与 PyTorch 和 TensorFlow 整合,能以通俗的方式进行格式转换。

教程笔记本:

examples 目录下包含许多示例和笔记本,它们可以让你对 Hub 有一个大致的了解。
在这里插入图片描述
应用场景:

  • 卫星和无人机成像: 利用可扩展的航空数据流建造智能农场, 绘制印度的经济状况, 与红十字一起在肯尼亚抗击沙漠蝗虫
  • 医学图像: 体积图像:MRI, Xray
  • 自动驾驶汽车: 雷达, 3D LIDAR, 点云, 语义分割, 视频对象
  • 零售: 自行结账数据集
  • 媒体: 图像,视频,音频储存

有许多数据集管理库提供与 Hub 类似的功能。实际上,很多用户都将 PyTorch 或 Tensorflow 的数据集迁移到了 Hub。以下是你在开始使用 Hub 后就会发现的一些惊人的不同点:

  • 数据是划分为数据块提供的,你可以从远程位置流传输这些数据,而不是一次性将它全部下载下来
  • 由于只需要评估必要部分的数据集,你可以立刻开始处理数据
  • 你能够保存那些无法整个被存储在内存里的数据
  • 你可以在不同机器上,与数个其他用户一起,在版本管理工具下合作管理数据集
  • 你将能获得那些能在数秒内提升你对数据理解的工具,比如我们的可视化工具
  • 你可以轻松地为几个不同的训练库准备数据(例如,你可以为 PyTorch 和 Tensorflow 使用同一个数据集)

评论区回复 “121”,七月在线干货组最新升级的《2021 大厂最新 AI 面试题 [含答案和解析, 更新到前 121 题]》,免费送!

持续无限期更新大厂最新面试题,AI 干货资料,目前干货组汇总了今年 3 月-6 月份,各大厂面试题。

在这里插入图片描述


本文地址:https://www.6aiq.com/article/1627989849454
本文版权归作者和AIQ共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出

更多内容请访问:IT源点

相关文章推荐

全部评论: 0

    我有话说: