你遇到的錯誤信息如下:
RuntimeError: (PreconditionNotMet) Tensor's dimension is out of bound.Tensor's dimension must be equal or less than the size of its memory.But received Tensor's dimension is 8, memory's size is 0.[Hint: Expected numel() * SizeOf(dtype()) <= memory_size(), but received numel() * SizeOf(dtype()):8 > memory_size():0.] (at ..\paddle\phi\core\dense_tensor_impl.cc:55)[operator < scale > error]
🧾 錯誤分析
這個錯誤表明 PaddlePaddle 在執行一個 scale
操作時,試圖訪問一個 維度為 8 的張量,但它的內存大小是 0。也就是說,這個張量沒有實際數據,卻在進行計算操作。
結合你的環境信息:
torch.__version__ == 2.7.0+cpu
:這說明你安裝的是 PyTorch(不是 PaddlePaddle)。- 卻運行了
PPStructure
這個 PaddlePaddle 的文檔結構化模型代碼。 - 報錯發生在加載
TableSystem
時,也就是表格識別模塊初始化失敗。
? 根本原因
? 你正在使用 PyTorch 環境運行 PaddlePaddle 的模型代碼!
這是不兼容的!
PP-Structure 是基于 PaddlePaddle 深度學習框架 實現的文檔結構化系統,它不能直接在 PyTorch 環境下運行。你現在使用的 Python 環境中安裝的是 torch
而不是 paddlepaddle
,所以模型加載失敗。
? 正確做法
? 步驟 1:確認你是否真的需要使用 PP-Structure
如果你確實想用 PP-Structure(比如解析 PDF 或圖像中的表格、文本等),請確保:
- 安裝的是
paddlepaddle
,而不是torch
- 使用 CPU 或 CUDA 版本要匹配
- 不要在 PyTorch 環境中混用 PaddlePaddle 的模型代碼
? 步驟 2:卸載 PyTorch,安裝 PaddlePaddle
卸載當前的 torch:
pip uninstall torch
安裝 PaddlePaddle(以 CPU 版為例):
pip install paddlepaddle==2.4.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
如果你有 GPU 并希望加速推理,請安裝 CUDA 支持版本(例如 CUDA 11.8):
pip install paddlepaddle==2.4.0.post118 -i https://pypi.tuna.tsinghua.edu.cn/simple
你可以通過以下命令檢查是否安裝成功:
import paddle
print(paddle.__version__)
paddle.utils.run_check()
? 步驟 3:使用專用虛擬環境(推薦)
建議創建一個獨立的虛擬環境來運行 PaddleOCR / PP-Structure:
# 創建虛擬環境
python -m venv pp_env# 激活虛擬環境
# Windows:
pp_env\Scripts\activate
# Linux/macOS:
source pp_env/bin/activate# 安裝依賴
pip install paddlepaddle paddleocr
然后在這個環境中運行你的 main_paddle.py
。
? 可選:如果你想繼續使用 PyTorch 環境
那你就不能使用 PP-Structure(因為它是 PaddlePaddle 生態的一部分)。你需要尋找 PyTorch 版本的替代方案,例如:
- 使用
detectron2
+ 自定義模型做文檔結構化 - 使用
LayoutParser
配合TableMaster
做表格識別 - 使用
DocTR
或Kleister
等開源項目
? 總結
問題 | 解決方法 |
---|---|
使用 torch 環境運行 PaddlePaddle 代碼 | ? 不支持,必須切換到 paddlepaddle 環境 |
張量維度異常(dimension=8, memory=0) | 初始化失敗導致,本質是環境配置錯誤 |
想要運行 PP-Structure | ? 創建專門的虛擬環境并安裝 paddlepaddle 和 paddleocr |
如需我幫你寫一個完整的 PP-Structure 啟動腳本或搭建環境流程,也可以繼續問我 👍