如何快速掌握OneFlow使用技巧?

2026-05-16 11:161阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1114个文字,预计阅读时间需要5分钟。

如何快速掌握OneFlow使用技巧?

计算机视觉研究中心作者:Edison_GOneFlow上手体验还未正式试用,但通过资料查找和代码解读,感觉上手还算简单,后期有机会和大咖分享详细代码解读。快速上手、安装OneFlow稳定。

计算机视觉研究院专栏

作者:Edison_G


OneFlow我还没有正式试用,但是通过资料查找和代码解读,感觉上手还是比较简单,后期有机会和大家分享详细代码解读。


快速上手

安装 OneFlow 稳定发布版

使用以下命令安装 OneFlow 最新稳定版本:

python3

系统要求:

  • Python >= 3.5
  • Nvidia Linux x86_64 driver version >= 440.33

如果提示找不到对应版本,请尝试升级​​pip​​:


python3 -m pip install --upgrade --user pip

安装 OneFlow with legacy CUDA

支持其它较早版本 CUDA 的 OneFlow 的安装方法如下:

python3 -m pip install --find-links oneflow-inc.github.io/nightly oneflow_cu101 --user
python3 -m pip install --find-links oneflow-inc.github.io/nightly oneflow_cu100 --user
python3 -m pip install --find-links oneflow-inc.github.io/nightly oneflow_cu92 --user
python3 -m pip install --find-links oneflow-inc.github.io/nightly oneflow_cu91 --user
python3 -m pip install --find-links oneflow-inc.github.io/nightly oneflow_cu90 --user

从源码编译安装 OneFlow

如何快速掌握OneFlow使用技巧?

如果你希望通过编译源码安装 OneFlow,可以参考 OneFlow源码仓库的 README,在编译 OneFlow 源码之前,强烈推荐先阅读 Troubleshooting。

YoloV3

快速开始

开始前,请确保您已正确安装了oneflow,并且在python3环境下可以成功import oneflow。

  • git clone此仓库到本地
  • git

    2.安装python依赖库

    pip install -r requirements.txt

    3.在项目root目录下,执行:

    ./scripts/build.sh

    执行此脚本,将cpp代码中自定义的op算子编译成可调用执行的.so文件,您将在项目路径下看到:

    • libdarknet.so
    • liboneflow_yolov3.so

    预训练模型

    我们使用了yolov3原作者提供的预训练模型—yolov3.weight ,经转换后生成了OneFlow格式的模型。下载预训练模型:of_model_yolov3.zip ,并将解压后的of_model文件夹放置在项目root目录下,即可使用。

    预测/推理

    运行:

    sh yolo_predict.sh

    或者:

    sh yolo_predict_python_data_preprocess.sh


    运行脚本后,将在data/result下生成检测后带bbox标记框的图片:

    参数说明 - --pretrained_model 预训练模型路径

    • --label_path coco类别标签路径(coco.name)
    • --input_dir 待检测图片文件夹路径
    • --output_dir 检测结构输出路径
    • --image_paths 单个/多个待检测图片路径,如:

    --image_paths 'data/images/000002.jpg' 'data/images/000004.jpg'

    训练同样很简单,准备好数据集后,只需要执行:​​sh yolo_train.sh​​即可,数据集制作过程见下文部分。

    数据集制作

    YoloV3支持任意目标检测数据集,下面我们以COCO2014制作过程为例,介绍训练/验证所需的数据集制作,其它数据集如PASCAL VOC或自定义数据集等,都可以采用相同格式。

    资源文件

    下载COCO2014训练集和验证集图片,将解压后的train2014和val2014放在data/COCO/images目录下

    (如果本地已下载过COCO2014数据集,可以ln软链接images至本地train2014和val2014的父目录)

    准备资源文件:labels,5k.part,trainvalno5k.part


    wget -c pjreddie.com/media/files/coco/5k.part
    wget -c pjreddie.com/media/files/coco/trainvalno5k.part
    wget -c pjreddie.com/media/files/coco/labels.tgz

    脚本

    在data/COCO目录下执行脚本:


    # get label file
    tar xzf labels.tgz

    # set up image list
    paste <(awk "{print \"$PWD\"}" <5k.part) 5k.part | tr -d '\t' > 5k.txt
    paste <(awk "{print \"$PWD\"}" <trainvalno5k.part) trainvalno5k.part | tr -d '\t' > trainvalno5k.txt

    # copy label txt to image dir
    find labels/train2014/ -name "*.txt" | xargs -i cp {} images/train2014/
    find labels/val2014/ -name "*.txt" | xargs -i cp {} images/val2014/

    执行脚本将自动解压缩labels.tgz文件,并在当前目录下生成5k.txt和trainvalno5k.txt,然后将labels/train2014和labels/val2014的的所有label txt文件复制到对应的训练集和验证集文件夹中(保证图片和label在同一目录)。

    至此,完成整个数据集的准备过程。

    训练

    修改yolo_train.sh脚本中的参数,令:--image_path_file="data/COCO/trainvalno5k.txt"并执行:


    sh yolo_train.sh

    即可开始训练过程,更详细的参数介绍如下:

    • --gpu_num_per_node 每台机器使用的gpu数量
    • --batch_size batch 批大小
    • --base_lr 初始学习率
    • --classes 目标类别数量(COCO 80;VOC 20)
    • --model_save_dir 模型存放文件夹路径
    • --dataset_dir 训练/验证集文件夹路径
    • --num_epoch 迭代总轮数
    • --save_frequency 指定模型保存的epoch间隔





    本文共计1114个文字,预计阅读时间需要5分钟。

    如何快速掌握OneFlow使用技巧?

    计算机视觉研究中心作者:Edison_GOneFlow上手体验还未正式试用,但通过资料查找和代码解读,感觉上手还算简单,后期有机会和大咖分享详细代码解读。快速上手、安装OneFlow稳定。

    计算机视觉研究院专栏

    作者:Edison_G


    OneFlow我还没有正式试用,但是通过资料查找和代码解读,感觉上手还是比较简单,后期有机会和大家分享详细代码解读。


    快速上手

    安装 OneFlow 稳定发布版

    使用以下命令安装 OneFlow 最新稳定版本:

    python3

    系统要求:

    • Python >= 3.5
    • Nvidia Linux x86_64 driver version >= 440.33

    如果提示找不到对应版本,请尝试升级​​pip​​:


    python3 -m pip install --upgrade --user pip

    安装 OneFlow with legacy CUDA

    支持其它较早版本 CUDA 的 OneFlow 的安装方法如下:

    python3 -m pip install --find-links oneflow-inc.github.io/nightly oneflow_cu101 --user
    python3 -m pip install --find-links oneflow-inc.github.io/nightly oneflow_cu100 --user
    python3 -m pip install --find-links oneflow-inc.github.io/nightly oneflow_cu92 --user
    python3 -m pip install --find-links oneflow-inc.github.io/nightly oneflow_cu91 --user
    python3 -m pip install --find-links oneflow-inc.github.io/nightly oneflow_cu90 --user

    从源码编译安装 OneFlow

    如何快速掌握OneFlow使用技巧?

    如果你希望通过编译源码安装 OneFlow,可以参考 OneFlow源码仓库的 README,在编译 OneFlow 源码之前,强烈推荐先阅读 Troubleshooting。

    YoloV3

    快速开始

    开始前,请确保您已正确安装了oneflow,并且在python3环境下可以成功import oneflow。

  • git clone此仓库到本地
  • git

    2.安装python依赖库

    pip install -r requirements.txt

    3.在项目root目录下,执行:

    ./scripts/build.sh

    执行此脚本,将cpp代码中自定义的op算子编译成可调用执行的.so文件,您将在项目路径下看到:

    • libdarknet.so
    • liboneflow_yolov3.so

    预训练模型

    我们使用了yolov3原作者提供的预训练模型—yolov3.weight ,经转换后生成了OneFlow格式的模型。下载预训练模型:of_model_yolov3.zip ,并将解压后的of_model文件夹放置在项目root目录下,即可使用。

    预测/推理

    运行:

    sh yolo_predict.sh

    或者:

    sh yolo_predict_python_data_preprocess.sh


    运行脚本后,将在data/result下生成检测后带bbox标记框的图片:

    参数说明 - --pretrained_model 预训练模型路径

    • --label_path coco类别标签路径(coco.name)
    • --input_dir 待检测图片文件夹路径
    • --output_dir 检测结构输出路径
    • --image_paths 单个/多个待检测图片路径,如:

    --image_paths 'data/images/000002.jpg' 'data/images/000004.jpg'

    训练同样很简单,准备好数据集后,只需要执行:​​sh yolo_train.sh​​即可,数据集制作过程见下文部分。

    数据集制作

    YoloV3支持任意目标检测数据集,下面我们以COCO2014制作过程为例,介绍训练/验证所需的数据集制作,其它数据集如PASCAL VOC或自定义数据集等,都可以采用相同格式。

    资源文件

    下载COCO2014训练集和验证集图片,将解压后的train2014和val2014放在data/COCO/images目录下

    (如果本地已下载过COCO2014数据集,可以ln软链接images至本地train2014和val2014的父目录)

    准备资源文件:labels,5k.part,trainvalno5k.part


    wget -c pjreddie.com/media/files/coco/5k.part
    wget -c pjreddie.com/media/files/coco/trainvalno5k.part
    wget -c pjreddie.com/media/files/coco/labels.tgz

    脚本

    在data/COCO目录下执行脚本:


    # get label file
    tar xzf labels.tgz

    # set up image list
    paste <(awk "{print \"$PWD\"}" <5k.part) 5k.part | tr -d '\t' > 5k.txt
    paste <(awk "{print \"$PWD\"}" <trainvalno5k.part) trainvalno5k.part | tr -d '\t' > trainvalno5k.txt

    # copy label txt to image dir
    find labels/train2014/ -name "*.txt" | xargs -i cp {} images/train2014/
    find labels/val2014/ -name "*.txt" | xargs -i cp {} images/val2014/

    执行脚本将自动解压缩labels.tgz文件,并在当前目录下生成5k.txt和trainvalno5k.txt,然后将labels/train2014和labels/val2014的的所有label txt文件复制到对应的训练集和验证集文件夹中(保证图片和label在同一目录)。

    至此,完成整个数据集的准备过程。

    训练

    修改yolo_train.sh脚本中的参数,令:--image_path_file="data/COCO/trainvalno5k.txt"并执行:


    sh yolo_train.sh

    即可开始训练过程,更详细的参数介绍如下:

    • --gpu_num_per_node 每台机器使用的gpu数量
    • --batch_size batch 批大小
    • --base_lr 初始学习率
    • --classes 目标类别数量(COCO 80;VOC 20)
    • --model_save_dir 模型存放文件夹路径
    • --dataset_dir 训练/验证集文件夹路径
    • --num_epoch 迭代总轮数
    • --save_frequency 指定模型保存的epoch间隔