{ "name": "ACT", "id": "ivcifqkd0400", "description": "ACT(Action Chunking with Transformers)是面向机器人学习场景的高性能端到端动作控制模型。相比传统模块化机器人控制模型,ACT采用轻量化Transformer架构作为核心骨干进行动作表征学习,结合多模态感知融合模块和时序动作优化网络,在控制精度和实时响应速度上均有显著提升。", "category": "多模态", "framework": [ "PyTorch" ], "supportOs": [ "OpenEuler" ], "computingPower": [ "Hi3403V100 SVP_NNN" ], "tags": [ "具身智能" ], "repositoryUrl": "https://gitee.com/HiSpark/modelzoo/blob/master/samples/contribute/ACT/README.md", "licenseUrl": "https://github.com/tonyzhaozh/act/blob/main/LICENSE", "downloads": [ { "fileName": "ACT.zip", "variants": [ "源模型 / 源模型下载", "源模型 / 源模型元数据" ] }, { "fileName": "act_distill_fp32_for_mindcmd_simp_release.om", "variants": [ "编译模型 / OM 元数据 / a16w8" ] }, { "fileName": "SVP_NNN_PC_V1.0.6.0.tgz", "variants": [ "附加资源 / 附加资源" ] } ], "apiDetail": { "createdBy": 140009447602724, "creationDate": "2026-03-03 10:30:33", "creationUserCN": "liuweihong", "lastUpdatedBy": null, "lastUpdateDate": "2026-03-04 16:06:22", "lastUpdateUserCN": "liuweihong", "rowIdx": -1, "id": "ivcifqkd0400", "name": "ACT", "isBeta": 0, "betaVersionDesc": "", "description": "ACT(Action Chunking with Transformers)是面向机器人学习场景的高性能端到端动作控制模型。相比传统模块化机器人控制模型,ACT采用轻量化Transformer架构作为核心骨干进行动作表征学习,结合多模态感知融合模块和时序动作优化网络,在控制精度和实时响应速度上均有显著提升。", "parentId": "ivcifqkd0400", "coverImageId": 1731868158459906, "coverImageUrl": "https://openxinhuo-board-image.obs.cn-east-3.myhuaweicloud.com/1731868158459906%2F%E6%A8%A1%E5%9E%8B%E5%B0%81%E9%9D%A2.png", "modelEffectId": 1731868175171585, "modelEffectUrl": "https://openxinhuo-board-image.obs.cn-east-3.myhuaweicloud.com/1731868175171585%2F3403_act.mp4", "computerVersion": [], "naturalLanguageProcess": [], "multimodal": [ "具身智能" ], "video": [], "framework": [ "PyTorch" ], "modelRepository": "https://gitee.com/HiSpark/modelzoo/blob/master/samples/contribute/ACT/README.md", "originModel": [ { "id": "1731868741468161", "name": "ACT.zip", "url": null, "size": "950831252" } ], "originModelLink": "", "dataSet": "https://huggingface.co/datasets/lwh2017/grab_banana/tree/main/banana_grasp_100_320x240", "modelLicense": "https://github.com/tonyzhaozh/act/blob/main/LICENSE", "detailParams": [ { "name": "输入", "value": "1 x 6;1 x 3 x 240 x 320;1 x 3 x 240 x 320" }, { "name": "参数量", "value": "87 M" }, { "name": "计算量", "value": "8.02 GFLOPs" } ], "quickStart": { "url": "https://gitee.com/HiSpark/modelzoo/blob/master/samples/contribute/ACT/SVP_NNN/src/main.cpp", "markDownUrl": "", "developLanguage": [ { "language": "C++", "context": "{\"ops\":[{\"attributes\":{\"background\":\"#ffffff\",\"size\":\"16px\",\"color\":\"#333333\"},\"insert\":\"模型可以通过以下代码生成可执行文件,并开放接口由python调用执行推理,以 SVP_NNN 推理引擎为例。\"},{\"attributes\":{\"text-indent\":\"0px\"},\"insert\":\"\\n\"},{\"insert\":\"#include \"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"#include \"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"#include \\\"sample_process.h\\\"\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"#include \\\"utils.h\\\"\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"#include \"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"#include \"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"using namespace std;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\\n\"},{\"insert\":\"int main() {\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"    // 初始化推理环境(只执行一次)\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"    SampleProcess sample;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"    if (sample.InitResource() != SUCCESS) {\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"        cerr << \\\"Init resource failed\\\" << endl;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"        return -1;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"    }\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\\n\"},{\"insert\":\"    // 加载模型(只执行一次)\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"    if (sample.LoadModel() != SUCCESS) {\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"        cerr << \\\"Load model failed\\\" << endl;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"        sample.DestroyResource();\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"        return -1;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"    }\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\\n\"},{\"insert\":\"    // 循环处理多次输入\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"    while (true) {\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"        vector input_datas;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"        vector input_sizes;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"        const int INPUT_COUNT = 3;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\\n\"},{\"insert\":\"        // 读取输入数据(保持原有逻辑)\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"        bool readSuccess = true;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"        for (int i = 0; i < INPUT_COUNT; ++i) {\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"            uint32_t data_size;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"            cin.read(reinterpret_cast(&data_size), sizeof(data_size));\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"            if (!cin.good()) {\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"                cerr << \\\"Read input \\\" << i << \\\" size failed\\\" << endl;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"                readSuccess = false;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"                break;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"            }\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\\n\"},{\"insert\":\"            void* data = nullptr;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"            svp_acl_error ret = svp_acl_rt_malloc(&data, data_size, SVP_ACL_MEM_MALLOC_NORMAL_ONLY);\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"            if (ret != SVP_ACL_SUCCESS || data == nullptr) {\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"                cerr << \\\"Malloc buffer for input \\\" << i << \\\" failed\\\" << endl;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"                readSuccess = false;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"                break;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"            }\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\\n\"},{\"insert\":\"            cin.read(reinterpret_cast(data), data_size);\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"            if (!cin.good()) {\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"                cerr << \\\"Read input \\\" << i << \\\" data failed\\\" << endl;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"                svp_acl_rt_free(data);\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"                readSuccess = false;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"                break;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"            }\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\\n\"},{\"insert\":\"            input_datas.push_back(data);\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"            input_sizes.push_back(data_size);\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"        }\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\\n\"},{\"insert\":\"        // 检查是否读取失败(比如到达输入末尾)\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"        if (!readSuccess) {\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"            // 释放已分配的内存\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"            for (auto ptr : input_datas) svp_acl_rt_free(ptr);\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"            break;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"        }\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\\n\"},{\"insert\":\"        // 设置输入并执行推理\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"        sample.SetInputDatas(input_datas, input_sizes);\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"        if (sample.Process() != SUCCESS) {\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"            cerr << \\\"Inference failed\\\" << endl;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"        } else {\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"            cout << \\\"3-input inference success\\\" << endl; // 注意这里修正了原代码的数字错误(5->3)\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"        }\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\\n\"},{\"insert\":\"        // 释放当前批次的输入内存\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"        for (auto data : input_datas) svp_acl_rt_free(data);\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"    }\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\\n\"},{\"insert\":\"    // 最后释放所有资源\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"    sample.DestroyResource();\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"    return 0;\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"insert\":\"}\"},{\"attributes\":{\"code-block\":\"plain\"},\"insert\":\"\\n\"},{\"attributes\":{\"background\":\"#ffffff\",\"size\":\"16px\",\"color\":\"#40485b\",\"line-height\":\"1.6\"},\"insert\":\"备注:上述C++代码依赖的动态库与头文件位于\"},{\"attributes\":{\"background\":\"#ffffff\",\"size\":\"16px\",\"color\":\"#40485b\",\"line-height\":\"1.6\",\"link\":\"https://gitee.com/HiSpark/modelzoo/tree/master/samples/contribute/ACT/SVP_NNN/src\"},\"insert\":\"samples/contribute/ACT/SVP_NNN/src\"},{\"attributes\":{\"background\":\"#ffffff\",\"size\":\"16px\",\"color\":\"#40485b\",\"line-height\":\"1.6\"},\"insert\":\"目录下,编译相关配置参考\"},{\"attributes\":{\"background\":\"transparent\",\"size\":\"16px\",\"color\":\"#095eab\",\"line-height\":\"1.6\",\"link\":\"https://gitee.com/HiSpark/modelzoo/blob/master/samples/contribute/ACT/SVP_NNN/src/CMakeLists.txt\"},\"insert\":\"CMakeLists.txt\"},{\"attributes\":{\"background\":\"#ffffff\",\"size\":\"16px\",\"color\":\"#40485b\",\"line-height\":\"1.6\"},\"insert\":\"。\"},{\"insert\":\"\\n\"}]}" } ] }, "status": "released", "currentHandler": "", "currentHandlerName": "", "jsonPath": "", "modelAdaptor": [ { "createdBy": null, "creationDate": null, "creationUserCN": null, "lastUpdatedBy": null, "lastUpdateDate": null, "lastUpdateUserCN": null, "rowIdx": -1, "id": "i8ttm5k1tc00", "name": "Hi3403V100 SVP_NNN", "modelId": "ivcifqkd0400", "modelName": "ACT", "supportNames": [ "a16w8" ], "toolkit": [ { "name": "CANN工具", "url": "https://hispark-obs.obs.cn-east-3.myhuaweicloud.com/SVP_NNN_PC_V1.0.6.0.tgz", "desc": "AI异构计算架构;提升计算效率的关键平台", "imgId": "cann" }, { "name": "编译工具库", "url": "https://gitee.com/HiSpark/pegasus/blob/Beta-v0.9.1/docs/Hi3403V100%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E6%8C%87%E5%8D%97/Hi3403V100%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E6%8C%87%E5%8D%97.md", "desc": "高效编译,精准适配;AI性能优化,应用流畅运行", "imgId": "tool" }, { "name": "SDK", "url": "https://gitee.com/HiSpark/ss928v100_clang/tree/Beta-v0.9.1/", "desc": "稳定、易用的设计;支撑客户快速产品量产", "imgId": "sdk" } ], "supportOs": [ "OpenEuler" ], "supportQuantify": [ { "createdBy": 140009447602724, "creationDate": "2026-03-04 10:24:37", "creationUserCN": "liuweihong", "lastUpdatedBy": 140009447602724, "lastUpdateDate": "2026-03-04 10:24:37", "lastUpdateUserCN": "liuweihong", "rowIdx": -1, "id": "ivmqn4s10400", "name": "a16w8", "computingId": "i8ttm5k1tc00", "computingName": "Hi3403V100 SVP_NNN", "omOfflineModelUrl": null, "omOfflineModelId": null, "omOfflineModelSize": null, "omOfflineModelName": null, "omOfflineModel": [ { "id": "1731869443948545", "name": "act_distill_fp32_for_mindcmd_simp_release.om", "url": null, "size": "72787553" } ], "omOfflineModelLink": "", "releaseTime": "2026-03-03", "boardOs": null, "modelLicense": "https://gitee.com/HiSpark/modelzoo/blob/master/samples/contribute/ACT/LICENSE", "modelPerformance": [ { "performanceValue": "37", "unit": "耗时(ms)", "desc": "" }, { "performanceValue": "27", "unit": "性能(fps)", "desc": "" }, { "performanceValue": "1.8", "unit": "内存(GB)", "desc": "" } ], "deleted": 0 } ], "deleted": 0 } ], "saveType": null, "deleteType": null, "latest": "Y", "deleted": 0, "modelPhase": "released", "remark": null, "fileInfo": null, "reviewType": null, "owner": "liuweihong", "ownerBy": 140009447602724, "optional": null, "optionalList": null, "optionalBy": null, "downloadNum": 26, "collectNum": null, "isCollect": null } }