diff --git a/gen_names.sh b/gen_names.sh new file mode 100755 index 0000000..e9f35d8 --- /dev/null +++ b/gen_names.sh @@ -0,0 +1,66 @@ +#!/bin/bash +for subdir in "cv/classification"/*/; do + if [ -d "$subdir" ]; then + dirname=$(basename "$subdir") + if [[ "$dirname" == "data" || "$dirname" == "configs" ]]; then + continue + fi + echo "基于$dirname的图像分类模型测试" + fi +done + +for subdir in "cv/detection"/*/; do + if [ -d "$subdir" ]; then + dirname=$(basename "$subdir") + echo "基于$dirname的目标检测模型测试" + fi +done + +for subdir in "cv/segment"/*/; do + if [ -d "$subdir" ]; then + dirname=$(basename "$subdir") + echo "基于$dirname的实体分割模型测试" + fi +done + +for subdir in "cv/Face_Recognition"/*/; do + if [ -d "$subdir" ]; then + dirname=$(basename "$subdir") + if [[ "$dirname" == "backbones" || "$dirname" == "configs" ]]; then + continue + fi + if [[ "$dirname" == "eval" || "$dirname" == "tools" ]]; then + continue + fi + if [[ "$dirname" == "utils" ]]; then + continue + fi + echo "基于$dirname的人脸识别模型测试" + fi +done + +# cv/Neural_Style_Transfer +echo "基于神经网络风格迁移模型测试" + +for subdir in "nlp/libai"/*/; do + if [ -d "$subdir" ]; then + dirname=$(basename "$subdir") + echo "基于$dirname的自然语言模型测试" + fi +done + +# nlp/text_classfication +echo "基于transformer的文本分类模型测试" + + +for subdir in "science"/*/; do + if [ -d "$subdir" ]; then + dirname=$(basename "$subdir") + echo "基于$dirname的科学计算模型测试" + fi +done + + + + + diff --git a/model_test_list.txt b/model_test_list.txt new file mode 100644 index 0000000..397a886 --- /dev/null +++ b/model_test_list.txt @@ -0,0 +1,211 @@ +基于alexnet的图像分类模型测试 +基于cait_M36_384的图像分类模型测试 +基于cait_M48_448的图像分类模型测试 +基于cait_S24_224的图像分类模型测试 +基于cait_S24_384的图像分类模型测试 +基于cait_S36_384的图像分类模型测试 +基于cait_XS24_384的图像分类模型测试 +基于convmixer_1024_20的图像分类模型测试 +基于convmixer_1536_20的图像分类模型测试 +基于convmixer_768_32_relu的图像分类模型测试 +基于convnext_tiny_224的图像分类模型测试 +基于crossformer_b的图像分类模型测试 +基于crossformer_l的图像分类模型测试 +基于crossformer_s的图像分类模型测试 +基于crossformer_t的图像分类模型测试 +基于deit_3_base_384_1k的图像分类模型测试 +基于deit_base_distilled_patch16_224的图像分类模型测试 +基于deit_base_distilled_patch16_384的图像分类模型测试 +基于deit_base_patch16_224的图像分类模型测试 +基于deit_base_patch16_384的图像分类模型测试 +基于deit_base_patch16_LS_224的图像分类模型测试 +基于deit_base_patch16_LS_224_in21k的图像分类模型测试 +基于deit_base_patch16_LS_384_in21k的图像分类模型测试 +基于deit_huge_patch14_LS_224的图像分类模型测试 +基于deit_huge_patch14_LS_224_in21k的图像分类模型测试 +基于deit_large_patch16_LS_224的图像分类模型测试 +基于deit_large_patch16_LS_384的图像分类模型测试 +基于deit_large_patch16_LS_384_in21k的图像分类模型测试 +基于deit_small_distilled_patch16_224的图像分类模型测试 +基于deit_small_patch16_224的图像分类模型测试 +基于deit_small_patch16_LS_224的图像分类模型测试 +基于deit_small_patch16_LS_224_in21k的图像分类模型测试 +基于deit_small_patch16_LS_384的图像分类模型测试 +基于deit_small_patch16_LS_384_in21k的图像分类模型测试 +基于deit_tiny_distilled_patch16_224的图像分类模型测试 +基于deit_tiny_patch16_224的图像分类模型测试 +基于densenet121的图像分类模型测试 +基于densenet161的图像分类模型测试 +基于densenet169的图像分类模型测试 +基于densenet201的图像分类模型测试 +基于dla102的图像分类模型测试 +基于dla102x的图像分类模型测试 +基于dla102x2的图像分类模型测试 +基于dla169的图像分类模型测试 +基于dla34的图像分类模型测试 +基于dla46_c的图像分类模型测试 +基于dla46x_c的图像分类模型测试 +基于dla60的图像分类模型测试 +基于dla60x的图像分类模型测试 +基于dla60x_c的图像分类模型测试 +基于efficientnet_b0的图像分类模型测试 +基于efficientnet_b1的图像分类模型测试 +基于efficientnet_b2的图像分类模型测试 +基于efficientnet_b3的图像分类模型测试 +基于efficientnet_b4的图像分类模型测试 +基于efficientnet_b5的图像分类模型测试 +基于efficientnet_b6的图像分类模型测试 +基于efficientnet_b7的图像分类模型测试 +基于fan_base_16_p4_hybrid_in22k_1k_384的图像分类模型测试 +基于fan_base_18_p16_224的图像分类模型测试 +基于fan_hybrid_base的图像分类模型测试 +基于fan_hybrid_base_in22k_1k的图像分类模型测试 +基于fan_hybrid_small的图像分类模型测试 +基于fan_hybrid_tiny的图像分类模型测试 +基于fan_large_16_p4_hybrid_in22k_1k的图像分类模型测试 +基于fan_large_16_p4_hybrid_in22k_1k_384的图像分类模型测试 +基于fan_vit_small的图像分类模型测试 +基于fan_vit_tiny的图像分类模型测试 +基于genet_large的图像分类模型测试 +基于genet_normal的图像分类模型测试 +基于genet_small的图像分类模型测试 +基于ghostnet的图像分类模型测试 +基于gmlp_s16_224的图像分类模型测试 +基于googlenet的图像分类模型测试 +基于hrnet_w18的图像分类模型测试 +基于hrnet_w18_small的图像分类模型测试 +基于hrnet_w18_small_v2的图像分类模型测试 +基于hrnet_w30的图像分类模型测试 +基于hrnet_w32的图像分类模型测试 +基于hrnet_w40的图像分类模型测试 +基于hrnet_w44的图像分类模型测试 +基于hrnet_w48的图像分类模型测试 +基于hrnet_w64的图像分类模型测试 +基于inception_v3的图像分类模型测试 +基于levit_128的图像分类模型测试 +基于mlp_mixer_b16_224的图像分类模型测试 +基于mlp_mixer_l16_224的图像分类模型测试 +基于mnasnetx0_5的图像分类模型测试 +基于mnasnetx0_75的图像分类模型测试 +基于mnasnetx1_0的图像分类模型测试 +基于mnasnetx1_3的图像分类模型测试 +基于mobilenet_v2的图像分类模型测试 +基于mobilenet_v3_large的图像分类模型测试 +基于mobilenet_v3_small的图像分类模型测试 +基于poolformer_m36的图像分类模型测试 +基于poolformer_m48的图像分类模型测试 +基于poolformer_s12的图像分类模型测试 +基于poolformer_s24的图像分类模型测试 +基于poolformer_s36的图像分类模型测试 +基于pvt_large的图像分类模型测试 +基于pvt_medium的图像分类模型测试 +基于pvt_small的图像分类模型测试 +基于pvt_tiny的图像分类模型测试 +基于__pycache__的图像分类模型测试 +基于regionvit_base_224的图像分类模型测试 +基于regnet_x_16gf的图像分类模型测试 +基于regnet_x_1_6gf的图像分类模型测试 +基于regnet_x_32gf的图像分类模型测试 +基于regnet_x_3_2gf的图像分类模型测试 +基于regnet_x_400mf的图像分类模型测试 +基于regnet_x_800mf的图像分类模型测试 +基于regnet_x_8gf的图像分类模型测试 +基于regnet_y_16gf的图像分类模型测试 +基于regnet_y_1_6gf的图像分类模型测试 +基于regnet_y_32gf的图像分类模型测试 +基于regnet_y_3_2gf的图像分类模型测试 +基于regnet_y_400mf的图像分类模型测试 +基于regnet_y_800mf的图像分类模型测试 +基于regnet_y_8gf的图像分类模型测试 +基于res2net101_26w_4s的图像分类模型测试 +基于res2net50_14w_8s的图像分类模型测试 +基于res2net50_26w_4s的图像分类模型测试 +基于res2net50_26w_6s的图像分类模型测试 +基于res2net50_26w_8s的图像分类模型测试 +基于res2net50_48w_2s的图像分类模型测试 +基于resnest101的图像分类模型测试 +基于resnest200的图像分类模型测试 +基于resnest269的图像分类模型测试 +基于resnest50的图像分类模型测试 +基于resnet101的图像分类模型测试 +基于resnet152的图像分类模型测试 +基于resnet18的图像分类模型测试 +基于resnet34的图像分类模型测试 +基于resnet50的图像分类模型测试 +基于resnext101_32x8d的图像分类模型测试 +基于resnext50_32x4d的图像分类模型测试 +基于rexnet_lite_1_0的图像分类模型测试 +基于rexnet_lite_1_3的图像分类模型测试 +基于rexnet_lite_1_5的图像分类模型测试 +基于rexnet_lite_2_0的图像分类模型测试 +基于rexnetv1_1_0的图像分类模型测试 +基于rexnetv1_1_3的图像分类模型测试 +基于rexnetv1_1_5的图像分类模型测试 +基于rexnetv1_2_0的图像分类模型测试 +基于rexnetv1_3_0的图像分类模型测试 +基于senet154的图像分类模型测试 +基于se_resnet101的图像分类模型测试 +基于se_resnet152的图像分类模型测试 +基于se_resnet50的图像分类模型测试 +基于se_resnext101_32x4d的图像分类模型测试 +基于se_resnext50_32x4d的图像分类模型测试 +基于shufflenet_v2x0_5的图像分类模型测试 +基于shufflenet_v2x1_0的图像分类模型测试 +基于shufflenet_v2x1_5的图像分类模型测试 +基于shufflenet_v2x2_0的图像分类模型测试 +基于squeezenet1_0的图像分类模型测试 +基于squeezenet1_1的图像分类模型测试 +基于van_base的图像分类模型测试 +基于vgg11的图像分类模型测试 +基于vgg11_bn的图像分类模型测试 +基于vgg13的图像分类模型测试 +基于vgg13_bn的图像分类模型测试 +基于vgg16的图像分类模型测试 +基于vgg16_bn的图像分类模型测试 +基于vgg19的图像分类模型测试 +基于vgg19_bn的图像分类模型测试 +基于vit_base_patch16_224的图像分类模型测试 +基于vit_base_patch16_224_miil的图像分类模型测试 +基于vit_base_patch16_224_sam的图像分类模型测试 +基于vit_base_patch16_384的图像分类模型测试 +基于vit_base_patch32_224的图像分类模型测试 +基于vit_base_patch32_224_sam的图像分类模型测试 +基于vit_base_patch32_384的图像分类模型测试 +基于vit_base_patch8_224的图像分类模型测试 +基于vit_large_patch16_224的图像分类模型测试 +基于vit_large_patch16_384的图像分类模型测试 +基于vit_large_patch32_384的图像分类模型测试 +基于vit_small_patch16_224的图像分类模型测试 +基于vit_small_patch16_384的图像分类模型测试 +基于vit_small_patch32_224的图像分类模型测试 +基于vit_small_patch32_384的图像分类模型测试 +基于vit_tiny_patch16_224的图像分类模型测试 +基于vit_tiny_patch16_384的图像分类模型测试 +基于fasterrcnn_mobilenet_v3_large_320_fpn的目标检测模型测试 +基于fasterrcnn_mobilenet_v3_large_fpn的目标检测模型测试 +基于fasterrcnn_resnet50_fpn的目标检测模型测试 +基于fcos_resnet50_fpn的目标检测模型测试 +基于maskrcnn_resnet50_fpn的目标检测模型测试 +基于retinanet_resnet50_fpn的目标检测模型测试 +基于ssd300_vgg16的目标检测模型测试 +基于ssdlite320_mobilenet_v3_large的目标检测模型测试 +基于deeplabv3_mobilenet_v3_large_coco的实体分割模型测试 +基于deeplabv3_resnet101_coco的实体分割模型测试 +基于deeplabv3_resnet50_coco的实体分割模型测试 +基于fcn_resnet101_coco的实体分割模型测试 +基于fcn_resnet50_coco的实体分割模型测试 +基于lraspp_mobilenet_v3_large_coco的实体分割模型测试 +基于iresnet101的人脸识别模型测试 +基于iresnet50的人脸识别模型测试 +基于神经网络风格迁移模型测试 +基于Bert的自然语言模型测试 +基于gpt2的自然语言模型测试 +基于ResMLP的自然语言模型测试 +基于RoBERTa的自然语言模型测试 +基于SwinTransformer的自然语言模型测试 +基于SwinTransformerV2的自然语言模型测试 +基于T5的自然语言模型测试 +基于VisionTransformer的自然语言模型测试 +基于transformer的文本分类模型测试 +基于ldc的科学计算模型测试 +基于lorenz_system的科学计算模型测试 diff --git a/test/Dockerfile b/test/Dockerfile new file mode 100644 index 0000000..557567d --- /dev/null +++ b/test/Dockerfile @@ -0,0 +1,20 @@ +FROM oneflowinc/oneflow:0.9.1.dev20240203-cuda11.8 + +RUN python3 -m pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple + +COPY requirements.txt /tmp/requirements.txt +RUN python3 -m pip install --no-cache-dir -r /tmp/requirements.txt + +RUN python3 -m pip install --pre oneflow -f https://oneflow-staging.oss-cn-beijing.aliyuncs.com/branch/master/cu118 + +WORKDIR /workspace + +RUN rm /tmp/requirements.txt + +RUN apt-get update && apt-get install -y git \ + && rm -rf /var/lib/apt/lists/* + +RUN git clone https://github.com/Oneflow-Inc/libai.git /opt/libai \ + && cd /opt/libai \ + && pip3 install -r requirements.txt \ + && pip3 install -e /opt/libai diff --git a/test/README.md b/test/README.md new file mode 100644 index 0000000..fdf1b3e --- /dev/null +++ b/test/README.md @@ -0,0 +1,36 @@ +## 文件说明 +``` +. +├── README.md +├── requirements.txt # 构建镜像所需的依赖 +├── Dockerfile # 定义Docker镜像内容的文本文件 +├── build.sh # 构建镜像命令 +├── launch.sh # 启动容器命令 +├── cv_cls_test.sh # 测试计算机视觉相关的分类模型 +├── cv_det_test.sh # 测试计算机视觉相关的检测模型 +├── cv_face_test.sh # 测试计算机视觉相关的人脸识别模型 +├── cv_neu_test.sh # 测试计算机视觉相关的风格转换模型 +├── nlp_libai_test.sh # 测试自然语言相关OneFlow Libai中的模型 +├── nlp_test.sh # 测试自然语言相关的模型 +└── science_test.sh # 测试科学计算相关的模型 + +``` +下面只解释其中一个测试脚本,其它脚本,参数和使用方法相同。 +## cv_cls_test.sh + +### 介绍 +`cv_cls_test.sh` 是一个用于处理 `cv/classification` 目录下子目录的 Bash 脚本。根据用户提供的参数,该脚本可以对所有子目录、随机选取的子目录或前 n 个子目录进行操作。 + +### 脚本功能 +1. **复制子目录**:将指定的子目录内容复制到 `/workspace/temp_model` 目录下。 +2. **进入工作目录**:进入 `/workspace/temp_model` 目录。 +3. **运行脚本**:执行该目录下的脚本(`infer.sh`缺省脚本)。 + +### 使用方法 + +```bash +./cv_cls_test.sh {all|random|n} {infer.sh|train.sh} + +build.sh cv_face_test.sh launch.sh README.md +cv_cls_test.sh cv_neu_test.sh nlp_libai_test.sh requirements.txt +cv_det_test.sh Dockerfile nlp_test.sh science_test.sh diff --git a/test/build.sh b/test/build.sh new file mode 100755 index 0000000..5357134 --- /dev/null +++ b/test/build.sh @@ -0,0 +1,5 @@ +#!/bin/bash +IMAGE_NAME="oneflow_comodels_test:0.1" + +docker build -t $IMAGE_NAME . + diff --git a/test/cv_cls_test.sh b/test/cv_cls_test.sh new file mode 100755 index 0000000..0ef1761 --- /dev/null +++ b/test/cv_cls_test.sh @@ -0,0 +1,58 @@ +#!/bin/bash + +EXEC=${2:-infer.sh} +SUB_DIR_PATH="/workspace/CoModels/cv/classification" +WORKSPACE="/workspace/temp_model" + +if [ $# -ne 1 ]; then + echo "Usage: $0 {all|random|n}" + exit 1 +fi + +option="$1" + +subdirs=($(find "$SUB_DIR_PATH" -mindepth 1 -maxdepth 1 -type d)) + +process_subdir() { + local dir="$1" + + rm -rf "$WORKSPACE" + mkdir -p "$WORKSPACE" + + cp -rL "$dir"/* "$WORKSPACE" + + cd "$WORKSPACE" + + if [ -f "./$EXEC" ]; then + bash ./$EXEC + else + echo "$EXEC not found in $WORKSPACE" + fi + + cd - > /dev/null +} + +case "$option" in + "all") + for dir in "${subdirs[@]}"; do + process_subdir "$dir" + done + ;; + "random") + random_index=$((RANDOM % ${#subdirs[@]})) + process_subdir "${subdirs[$random_index]}" + ;; + [0-9]*) + n="$option" + for ((i=0; i /dev/null +} + +case "$option" in + "all") + for dir in "${subdirs[@]}"; do + process_subdir "$dir" + done + ;; + "random") + random_index=$((RANDOM % ${#subdirs[@]})) + process_subdir "${subdirs[$random_index]}" + ;; + [0-9]*) + n="$option" + for ((i=0; i /dev/null +} + +case "$option" in + "all") + for dir in "${subdirs[@]}"; do + process_subdir "$dir" + done + ;; + "random") + random_index=$((RANDOM % ${#subdirs[@]})) + process_subdir "${subdirs[$random_index]}" + ;; + [0-9]*) + n="$option" + for ((i=0; i /dev/null +} + +case "$option" in + "all") + for dir in "${subdirs[@]}"; do + process_subdir "$dir" + done + ;; + "random") + random_index=$((RANDOM % ${#subdirs[@]})) + process_subdir "${subdirs[$random_index]}" + ;; + [0-9]*) + n="$option" + for ((i=0; i /dev/null +} + +case "$option" in + "all") + for dir in "${subdirs[@]}"; do + process_subdir "$dir" + done + ;; + "random") + random_index=$((RANDOM % ${#subdirs[@]})) + process_subdir "${subdirs[$random_index]}" + ;; + [0-9]*) + n="$option" + for ((i=0; i /dev/null +} + +case "$option" in + "all") + for dir in "${subdirs[@]}"; do + process_subdir "$dir" + done + ;; + "random") + random_index=$((RANDOM % ${#subdirs[@]})) + process_subdir "${subdirs[$random_index]}" + ;; + [0-9]*) + n="$option" + for ((i=0; i