423 Star 4.3K Fork 424

GVPPaddlePaddle / Paddle

 / 详情

inference_topology.pkl如何使用呢?

已完成
创建于  
2021-03-25 23:43

源自github用户yjj19920505:
在很多示例代码里边都有下面这段代码,不过关于如何使用这个pkl的代码几乎没有。
Save the inference topology to protobuf.

with open("inference_topology.pkl", 'wb') as f:
    inference_topology.serialize_for_inference(f)

我只查到下面这段记录,它用保存的params和inference_topology构造了一个inference。

with open(tarfn) as param_f, open(topology_filepath) as topo_f:
    params = paddle.parameters.Parameters.from_tar(param_f)
    inferer = paddle.inference.Inference(parameters=params, fileobj=topo_f)

这个inference的预测方法如下:

r = inferer.infer([d], feeding=feeding, field=fields)

和现有示例代码的预测方法完全不同

probs = paddle.infer(output_layer = y_pre, input = test_data, parameters = parameters)

因此想了解下inference_topology.pkl的具体使用方法。谢谢

评论 (3)

PaddlePaddle-Gardener 创建了任务
展开全部操作日志

源自github用户luotao1:
训练好的模型分两部分序列化,一个是网络拓扑结构,一个是参数。

源自github用户zishuaiz:
hi @ luotao
请教个问题:
数字识别那个

from PIL import Image
import numpy as np
import os
def load_image(file):
    im = Image.open(file).convert('L')
    im = im.resize((28, 28), Image.ANTIALIAS)
    im = np.array(im).astype(np.float32).flatten()
    im = im / 255.0
    return im

test_data = []
cur_dir = os.getcwd()
test_data.append((load_image(cur_dir + '/image/infer_3.png'),))

probs = paddle.infer(
    output_layer=predict, parameters=parameters, input=test_data)
lab = np.argsort(-probs) # probs and lab are the results of one batch data
print "Label of image/infer_3.png is: %d" % lab[0][0]

这里的predict是在train阶段定义的,当inference时还要重新把以前的代码再写一遍吗,还是把train文件中的train()函数注销掉?

train和infer用同一个文件?
可不可以解耦合成两个文件?

源自github用户lcy-seso:
请参考 Paddle Models 下面的例子,训练和测试可以分开定义。

PaddlePaddle-Coordinator 任务状态待办的 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(1)
Python
1
https://gitee.com/paddlepaddle/Paddle.git
git@gitee.com:paddlepaddle/Paddle.git
paddlepaddle
Paddle
Paddle

搜索帮助