# 资源耗尽错误：无法为预取队列分配内存

- **ID:** `tensorflow/resource-exhausted-dataset-prefetch`
- **领域:** tensorflow
- **类别:** resource_error
- **错误码:** `PRF`
- **验证级别:** ai_generated
- **修复率:** 80%

## 根因

tf.data管道的预取缓冲区消耗过多内存，通常是由于数据集元素过大或预取大小过大。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| tensorflow 2.14.0 | active | — | — |
| tensorflow 2.16.0 | active | — | — |

## 解决方案

1. ```
   Reduce prefetch buffer size: dataset = dataset.prefetch(buffer_size=tf.data.AUTOTUNE) or set a fixed small value like 1.
   ```
2. ```
   Use dataset.cache() to store processed elements on disk instead of memory.
   ```
3. ```
   Reduce element size by batching smaller or using lower-resolution images.
   ```

## 无效尝试

- **** — Increasing overall GPU memory limit doesn't target prefetch buffer specifically. (70% 失败率)
- **** — Using more CPU cores for mapping can increase memory usage. (50% 失败率)
