[Feature] paddle.save / paddle.load 支持 io.BytesIO(内存读写)
type/feature-requeststatus/close
### 需求描述 Feature Description
最近在做训练服务和单测时,想把模型状态直接在内存里传递,不走临时文件。
虽然现在 `paddle.save` / `paddle.load` 在文件路径场景很好用,但在 `io.BytesIO` 场景不太顺手,所以想提个需求。
#### 典型场景
- 单测里减少磁盘 I/O(更快也更干净)
- 服务端把状态通过内存缓冲区中转(比如网络传输前后)
- 某些运行环境不方便写临时文件
#### 期望效果
```python
import io
import paddle
x = paddle.randn([2, 3])
buffer = io.BytesIO()
paddle.save(x, buffer) # 期望支持写入内存
buffer.seek(0)
y = paddle.load(buffer) # 期望支持从内存读取
print((x - y).abs().max()) # 期望接近 0
```
如果这个方向可行,建议顺便补几条测试:
- Tensor round-trip
- dict(包含多个 Tensor)round-trip
- 非法 file-like 对象时给清晰报错
### 替代实现 Alternatives
现在我这边的绕行方案是:
- tempfile 写临时文件
- 再 paddle.load 读回来
能用,但有额外 I/O 和清理成本,所以还是希望框架能直接支持内存 buffer 场景。
关闭于 2026-04-25 0 条评论