在paddlepaddle的官网上,有一个线性回归的小例子,拷贝粘贴为LE_in_4x.py文件,运行后的结果如下:

将LE_in_4x.py文件从保存模型后分开,如下图红线处,将后半部分单独作为一个文件LE_in_4x_test.py

编辑后的LE_in_4x_test.py文件如下:
#加载库
import paddle.fluid as fluid
import numpy as np
# 开始预测
cpu = fluid.CPUPlace()
infer_exe = fluid.Executor(cpu)
inference_scope = fluid.Scope()
# 加载训练好的模型
params_dirname = 'result'
with fluid.scope_guard(inference_scope):
[inference_program,feed_target_names,
fetch_targets] = fluid.io.load_inference_model(params_dirname,infer_exe)
# 生成测试数据
test = n

本文探讨了在PaddlePaddle框架中遇到的`fluid.Scope`问题,特别是在模型训练、保存、加载和预测过程中作用域导致的错误。通过研究不同版本的文档,了解到`fluid.Scope`用于创建新的作用域,而`fluid.scope_guard`用于切换作用域,以避免环境变量冲突。文章提供了两种解决方案:一是使用`fluid.Scope`和`fluid.scope_guard`切换作用域;二是直接在默认作用域中加载和运行模型。此外,还解决了在Python3.8环境下运行时的collections包兼容性问题。
最低0.47元/天 解锁文章
442





