按照官方课程完成线性回归预测的模型,并成功保存
以下是官方课程给出的单个测试数据预测代码成功可用
def load_one_example(data_dir):
f = open(data_dir, 'r')
datas = f.readlines()
# 选择倒数第10条数据用于测试
tmp = datas[-10]
tmp
tmp = tmp.strip().split()
one_data = [float(v) for v in tmp]
# 对数据进行归一化处理
for i in range(len(one_data)-1):
one_data[i] = (one_data[i] - avg_values[i]) / (max_values[i] - min_values[i])
data = np.reshape(np.array(one_data[:-1]), [1, -1]).astype(np.float32)
label = one_data[-1]
return data, label
with dygraph.guard():
# 参数为保存模型参数的文件地址
model_dict, _ = fluid.load_dygraph('LR_model')
model.load_dict(model_dict)
model.eval()
# 参数为数据集的文件地址
test_data, label = load_one_example('./work/housing.data')
# 将数据转为动态图的variable格式
test_data = dygraph.to_variable(test_data)
results = model(test_data)
# 对结果做反归一化处理
results = results * (max_values[-1] - min_values[-1]) + avg_values[-1]
print("Inference result is {}, the corresponding label is {}".format(results.numpy(), label))
我的问题是,怎样才能不要每次运行预测代码都重新训练一遍模型?如何在已有模型的基础上直接进行批量预测,并画出预测--真实的对比折线图?我找了许多方法都没有成功,希望得到帮助,本人对于paddle框架以及python矩阵操作不熟练,最好能给出代码更方便理解。谢谢!
请登录后评论
TOP
切换版块
思路:(1)训练完的模型(或参数)保存,预测之前直接加载模型(或参数)就行,这样不用每次都训练。
(2)构建一个预测数据集,eval_reader(),指定batch_size,遍历这个预测数据集应该就能够批量预测了。
只是思路 不知道对不对,我也初学者~~~