---
title: "测试集"
description: "Einsum Benchmark 的数据组成，以及收缩序优化、切片和数值执行测试的用途。"
eyebrow: "Benchmark"
---

## 数据组成 {#datasets}

ArcTN 使用公开的 [Einsum Benchmark](https://benchmark.einsum.org/) 进行测试。数据集包含 **168 个实例、7 个类别**：图模型、张量网络语言模型、模型计数、量子计算、随机问题、结构化问题和加权模型计数。

| 测试集合 | 实例数 | 范围 |
| --- | --- | --- |
| Einsum Benchmark 全集 | 168 | 不同应用中的张量网络收缩问题 |
| 量子计算子集（QC32） | 32 | 全集中属于量子计算类别的实例 |

QC32 的 32 指实例数，不是量子比特数。每个完整实例提供 einsum 表达式、数值张量和参考路径等数据，字段见[官方说明](https://benchmark.einsum.org/documentation/guides/instance_data/)。从表达式和数组形状可得到 ArcTN 使用的 `inputs`、`output`、`size_dict`，见[张量网络输入](/docs/tensor-network)。

数据可从 [Zenodo](https://zenodo.org/records/11477304) 下载，也可通过 `einsum_benchmark` Python 包读取，方法见[官方入门文档](https://benchmark.einsum.org/documentation/guides/gettingstarted/)。

## 测试用途 {#planning-only}

| 测试 | 测试内容 |
| --- | --- |
| 收缩序优化 | 根据网络结构搜索路径，记录搜索时间和路径指标 |
| 切片 | 在给定中间张量大小上限下，检查切片结果，记录切片数和总计算量 |
| 数值执行 | 加载输入数组，沿收缩路径完成计算，记录执行时间、内存使用并核对结果 |

收缩序优化只需要网络结构；数值执行还需要与之对应的数组。也可以连续完成优化、切片和执行，测试张量网络收缩的总耗时。

## 测试条件 {#protocol}

- 记录数据版本、实例名称和使用的子集。
- 搜索测试记录参数和线程数；执行测试另行记录数据类型、执行后端与硬件，并明确计时包含哪些阶段。
- `target_size` 限制单片中间张量的元素数，不是进程的实际内存上限。

指标定义见[路径指标](/docs/path-metrics)，计时方法见[计时与 CPU 使用量](/docs/performance-boundaries)。
