代码拉取完成,页面将自动刷新
同步操作将从 PaddlePaddle/PaddleRec 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
paddlerec目前提供在静态图训练时使用save_inference_model接口保存模型,动态图训练后将保存的模型转化为静态图的样式,以及将保存的模型使用Inference预测库进行服务端部署的功能。本教程将以wide_deep模型为例,说明如何使用这三项功能。
在服务器端使用python部署需要先使用save_inference_model接口保存模型。
<label>
表示广告是否被点击,点击用1表示,未点击用0表示,<integer feature>
代表数值特征(连续特征dense_input),共有13个连续特征,<categorical feature>
代表分类特征(离散特征C1~C26),共有26个离散特征。fetch参数输出的是auc,具体意义为static_model.py里def net()函数中将auc使用cast转换为float32类型语句中的cast算子。runner:
# 通用配置不再赘述
...
# use inference save model
use_inference: True # 静态图训练时保存为inference model
save_inference_feed_varnames: ["C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","C11","C12","C13","C14","C15","C16","C17","C18","C19","C20","C21","C22","C23","C24","C25","C26","dense_input"] # inference model 的feed参数的名字
save_inference_fetch_varnames: ["sigmoid_0.tmp_0"] # inference model 的fetch参数的名字
# 进入模型目录
# cd models/rank/wide_deep # 在任意目录均可运行
# 静态图训练
python -u ../../../tools/static_trainer.py -m config.yaml # 全量数据运行config_bigdata.yaml
若您在使用动态图训练完成,希望将保存下来的模型转化为静态图inference,那么可以参考我们提供的to_static.py脚本。
# 进入模型目录
# cd models/rank/wide_deep # 在任意目录均可运行
# 动态图训练
python -u ../../../tools/trainer.py -m config.yaml # 全量数据运行config_bigdata.yaml
model_init_path
选项model_init_path
地址处的模型,然后再转化为静态图保存。注意不要在一开始训练时就打开这个选项,不然会变成热启动训练。# example dnn and wide_deep model forward
dy_model = paddle.jit.to_static(dy_model,
input_spec=[[paddle.static.InputSpec(shape=[None, 1], dtype='int64') for jj in range(26)], paddle.static.InputSpec(shape=[None, 13], dtype='float32')])
python -u ../../../tools/to_static.py -m config.yaml
# 无需改动部分不再赘述
# 在最后输出的list中,去除第一个np.array,即label部分。
yield output_list[1:]
将inference预测得到的prediction预测值和数据集中的label对比,使用另外的脚本计算auc指标即可。
paddlerec提供tools/paddle_infer.py脚本,供您方便的使用inference预测库高效的对模型进行预测。
需要安装的库:
pip install pynvml
pip install psutil
pip install GPUtil
名称 | 类型 | 取值 | 是否必须 | 作用描述 |
---|---|---|---|---|
--model_file | string | 任意路径 | 是 | 模型文件路径(当需要从磁盘加载 Combined 模型时使用) |
--params_file | string | 任意路径 | 是 | 参数文件路径 (当需要从磁盘加载 Combined 模型时使用) |
--model_dir | string | 任意路径 | 是 | 模型文件夹路径 (当需要从磁盘加载非 Combined 模型时使用) |
--use_gpu | bool | True/False | 是 | 是否使用gpu |
--data_dir | string | 任意路径 | 是 | 测试数据目录 |
--reader_file | string | 任意路径 | 是 | 测试时用的Reader()所在python文件地址 |
--batchsize | int | >= 1 | 是 | 批训练样本数量 |
--model_name | str | 任意名字 | 否 | 输出模型名字 |
--cpu_threads | int | >= 1 | 否 | 在使用cpu时指定线程数,在使用gpu时此参数无效 |
--enable_mkldnn | bool | True/False | 否 | 在使用cpu时是否开启mkldnn加速,在使用gpu时此参数无效 |
--enable_tensorRT | bool | True/False | 否 | 在使用gpu时是否开启tensorRT加速,在使用cpu时此参数无效 |
# 进入模型目录
# cd models/rank/wide_deep # 在任意目录均可运行
python -u ../../../tools/paddle_infer.py --model_file=output_model_wide_deep/2/rec_inference.pdmodel --params_file=output_model_wide_deep/2/rec_inference.pdiparams --use_gpu=False --data_dir=data/sample_data/train --reader_file=criteo_reader.py --batchsize=5
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。