【DSW Gallery】基于EasyCV的视频分类示例

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: EasyCV是基于Pytorch,以自监督学习和Transformer技术为核心的 all-in-one 视觉算法建模工具,并包含图像分类,度量学习,目标检测,姿态识别等视觉任务的SOTA算法。本文以视频分类为例,为您介绍如何在PAI-DSW中使用EasyCV。

直接使用

请打开基于EasyCV的视频分类示例,并点击右上角 “ 在DSW中打开” 。

image.png

import torch
import os
os.environ['CUDA']='cu' + torch.version.cuda.replace('.', '')
os.environ['Torch']='torch'+torch.version.__version__.replace('+PAI', '')
!echo $CUDA
!echo $Torch
cu113
torch1.11.0+cu113
# install some python deps
! pip install --upgrade tqdm
! pip install mmcv-full==1.4.4 -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.8.0/index.html
! pip install http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/third_party/nvidia_dali_cuda100-0.25.0-1535750-py3-none-manylinux2014_x86_64.whl

2、安装EasyCV算法包 注:在PAI-DSW docker中预安装了pai-easycv库,可跳过该步骤,若训练测试过程中报错,尝试用下方命令更新easycv版本

#pip install pai-easycv
! echo y | pip uninstall pai-easycv easycv
!pip install pai-easycv

3、简单验证

from easycv.apis import *
[2023-02-03 15:33:22,001.001 dsw-16577-67c64db7b-kslkp:309 INFO utils.py:30] NOTICE: PAIDEBUGGER is turned off.

正式工作

数据准备

  本案例我们提供了视频分类的数据集, 你可以下载链接数据。   图片文件夹结构示例如下, 文件夹路径为./kinetics400

kinetics400/
├── val_256
    ├── 0002.jpg
    ├── 0003.jpg
    |...
└── test.txt
└── train.txt

为了快速走通流程,我们也提供了一个小的示例数据集,执行如下命令下载解压

! wget http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/configs/video/kinetics400.tar.gz && tar -xpf kinetics400.tar.gz 
Will not apply HSTS. The HSTS database must be a regular and non-world-writable file.
ERROR: could not open HSTS store at '/root/.wget-hsts'. HSTS will be disabled.
--2023-02-03 15:36:44--  http://pai-vision-data-inner.oss-cn-zhangjiakou.aliyuncs.com/yhq-hehong/dsw_example_data.tar.gz
Resolving pai-vision-data-inner.oss-cn-zhangjiakou.aliyuncs.com (pai-vision-data-inner.oss-cn-zhangjiakou.aliyuncs.com)... 39.98.20.34
Connecting to pai-vision-data-inner.oss-cn-zhangjiakou.aliyuncs.com (pai-vision-data-inner.oss-cn-zhangjiakou.aliyuncs.com)|39.98.20.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 441080348 (421M) [application/x-gzip]
Saving to: ‘dsw_example_data.tar.gz’
dsw_example_data.ta 100%[===================>] 420.65M  11.5MB/s    in 35s     
2023-02-03 15:37:19 (12.1 MB/s) - ‘dsw_example_data.tar.gz’ saved [441080348/441080348]

训练模型

这个Demo中我们采用Recognizer3D视频分类算法训练

# 下载config文件
! wget http://pai-vision-data-hz.oss-cn-zhangjiakou.aliyuncs.com/EasyCV/configs/video/x3d_xs.py

为了缩短训练时间,打开配置文件 x3d_xs.py,修改total_epoch参数为10, 每隔1次迭代打印一次日志。

# runtime settings
total_epochs = 10
# log config
log_config=dict(interval=1)

正式训练时,建议使用单机8卡配合该配置文件使用,如果要使用单机单卡,建议调小optimizer.lr初始学习率

# 查看easycv安装位置
import easycv
print(easycv.__file__)
/opt/conda/lib/python3.7/site-packages/easycv/__init__.py

如果出现以下报错信息请返回步骤2更新pai-easycv算法包

Message: Recognizer3D is not in the model registry
!python -m easycv.tools.train x3d_xs.py --work_dir work_dir/video/x3d_xs

模型导出

# 查看训练产生的pt文件
! ls  work_dir/video/x3d_xs/*pth
work_dir/video/x3d_xs/ClsEvaluator_neck_top1_best.pth
work_dir/video/x3d_xs/epoch_10.pth
work_dir/video/x3d_xs/epoch_5.pth
! python -m easycv.tools.export  x3d_xs.py work_dir/video/x3d_xs/ClsEvaluator_neck_top1_best.pth work_dir/video/x3d_xs/export_best.pth
video/x3d_xs.py
/opt/conda/lib/python3.7/site-packages/easycv/models/loss/cross_entropy_loss.py:273: UserWarning: Default ``avg_non_ignore`` is False, if you would like to ignore the certain label and average loss over non-ignore labels, which is the same with PyTorch official cross_entropy, set ``avg_non_ignore=True``.
  'Default ``avg_non_ignore`` is False, if you would like to '
load checkpoint from local path: work_dir/video/x3d_xs/ClsEvaluator_neck_top1_best.pth
from easycv.predictors.video_classifier import VideoClassificationPredictor
# 修改output_ckpt指向
output_ckpt = 'work_dir/video/x3d_xs/export_best.pth'
fe = VideoClassificationPredictor(output_ckpt)
img_path = 'kinetics400/val_256/-P6oVaW_u9E_000097_000107.mp4'
input = {'filename': img_path}
results = fe([input])[0]
print(results['class_name'])
print(results['class_probs'])
load checkpoint from local path: work_dir/video/x3d_xs/export_best.pth
['9']
相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
机器学习/深度学习 并行计算 数据可视化
【DSW Gallery】EasyCV-基于关键点的视频分类示例
EasyCV是基于Pytorch,以自监督学习和Transformer技术为核心的 all-in-one 视觉算法建模工具,并包含图像分类,度量学习,目标检测,姿态识别等视觉任务的SOTA算法。本文以基于关键点的视频分类为例,为您介绍如何在PAI-DSW中使用EasyCV。
【DSW Gallery】EasyCV-基于关键点的视频分类示例
|
机器学习/深度学习 算法
【DSW Gallery】如何使用EasyRec训练DeepFM模型
本文基于EasyRec 0.4.7 展示了如何使用EasyRec快速的训练一个DeepFM模型
【DSW Gallery】如何使用EasyRec训练DeepFM模型
|
人工智能 并行计算 算法
【DSW Gallery】基于MOCOV2的自监督学习示例
EasyCV是基于Pytorch,以自监督学习和Transformer技术为核心的 all-in-one 视觉算法建模工具,并包含图像分类,度量学习,目标检测,姿态识别等视觉任务的SOTA算法。本文以自监督学习-MOCO为例,为您介绍如何在PAI-DSW中使用EasyCV。
【DSW Gallery】基于MOCOV2的自监督学习示例
|
存储 机器学习/深度学习 Cloud Native
|
并行计算 算法 自动驾驶
【DSW Gallery】基于EasyCV的BEVFormer 3D检测示例
EasyCV是基于Pytorch,以自监督学习和Transformer技术为核心的 all-in-one 视觉算法建模工具,并包含图像分类,度量学习,目标检测,姿态识别等视觉任务的SOTA算法。本文将以BEVFormer 3D检测为例,为您介绍如何在PAI-DSW中使用EasyCV。
【DSW Gallery】基于EasyCV的BEVFormer 3D检测示例
|
缓存 自然语言处理 算法
【DSW Gallery】基于EasyNLP Transformer模型的中文文图生成
EasyNLP提供多种模型的训练及预测功能,旨在帮助自然语言开发者方便快捷地构建模型并应用于生产。本文简要介绍文图生成的技术,以及如何在PAI-DSW中基于EasyNLP轻松实现文图生成,带你秒变艺术家。
【DSW Gallery】基于EasyNLP Transformer模型的中文文图生成
|
文字识别 并行计算 算法
【DSW Gallery】基于EasyCV的文字识别示例
EasyCV是基于Pytorch,以自监督学习和Transformer技术为核心的 all-in-one 视觉算法建模工具,并包含图像分类,度量学习,目标检测,姿态识别等视觉任务的SOTA算法。本文以文字识别为例,为您介绍如何在PAI-DSW中使用EasyCV。
【DSW Gallery】基于EasyCV的文字识别示例
|
人工智能 并行计算 算法
【DSW Gallery】基于MAE的自监督学习示例
EasyCV是基于Pytorch,以自监督学习和Transformer技术为核心的 all-in-one 视觉算法建模工具,并包含图像分类,度量学习,目标检测,姿态识别等视觉任务的SOTA算法。本文自监督学习-MAE为例,为您介绍如何在PAI-DSW中使用EasyCV。
【DSW Gallery】基于MAE的自监督学习示例
|
算法 PyTorch 算法框架/工具
【DSW Gallery】基于YOLOX模型和iTAG标注数据的图像检测示例
EasyCV是基于Pytorch,以自监督学习和Transformer技术为核心的 all-in-one 视觉算法建模工具,并包含图像分类,度量学习,目标检测,姿态识别等视觉任务的SOTA算法。本文将为您介绍如何在PAI-DSW中使用EasyCV和PAI-iTAG标注的检测数据训练YOLOX模型。
【DSW Gallery】基于YOLOX模型和iTAG标注数据的图像检测示例