推荐算法再次踩坑记录
去年搞通了EasyRec这个玩意,没想到今年还要用推荐方面的东西,行吧,再来一次,再次踩坑试试。
1、EasyRec训练测试数据下载:
git clone后,进入EasyRec,然后执行:bash scripts/init.sh 将所用到的数据全部下载完成✅
2、模型部署,参考博文docker部署tf-serving :
首先必须将final文件,将此文件下的全部复制到/models/half_plus_two/下面。
2.1查看模型基本参数:
saved_model_cli show --dir /models/half_plus_two/00000123/ --tag_set serve --signature_def serving_default
The given SavedModel SignatureDef contains the following input(s):inputs['x'] tensor_info:dtype: DT_FLOATshape: (-1, 1)name: x:0
The given SavedModel SignatureDef contains the following output(s):outputs['y'] tensor_info:dtype: DT_FLOATshape: (-1, 1)name: y:0
Method name is: tensorflow/serving/predict2.2查看模型是否支持GPU
saved_model_cli show --dir /models/half_plus_two/00000123/
The given SavedModel contains the following tag-sets:
serve#表示不支持GPU,支持的应该是serve,gpu2.3输入数据查看结果
saved_model_cli run --dir /models/half_plus_two/00000123/ --tag_set serve --signature_def serving_default --input_exprs="x=[[1],[9]]"
[[2.5][6.5]]
结果正确,一半+2,1*0.5+2,9*0.5+2,结果一致2.4curl: (56) Recv failure: Connection reset by peer
发现docker -p指定端口不能用,其中有鬼,之前服务器就可以指定端口 ,因此仍旧改为8501端口。
docker启动代码见此文。
2.5docker停止及删除容器 ,没有此操作无法重启该名字的容器。
注意,里面有模型名字及容器名字,建议都取一样的名字。比如half_plus_two
docker kill half_plus_two
docker rm half_plus_two3、部署训练好的dssm模型
3.1查看模型输入参数
saved_model_cli show --dir /models/mydssm/163333/ --tag_set serve --signature_def serving_default
The given SavedModel SignatureDef contains the following input(s):inputs['app_category'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_9:0inputs['app_domain'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_8:0inputs['app_id'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_7:0inputs['banner_pos'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_3:0inputs['c1'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_2:0inputs['c14'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_15:0inputs['c15'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_16:0inputs['c16'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_17:0inputs['c17'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_18:0inputs['c18'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_19:0inputs['c19'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_20:0inputs['c20'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_21:0inputs['c21'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_22:0inputs['device_conn_type'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_14:0inputs['device_id'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_10:0inputs['device_ip'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_11:0inputs['device_model'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_12:0inputs['device_type'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_13:0inputs['hour'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_1:0inputs['site_category'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_6:0inputs['site_domain'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_5:0inputs['site_id'] tensor_info:dtype: DT_STRINGshape: (-1)name: input_4:0
The given SavedModel SignatureDef contains the following output(s):outputs['logits'] tensor_info:dtype: DT_FLOATshape: (-1)name: Squeeze:0outputs['probs'] tensor_info:dtype: DT_FLOATshape: (-1)name: Sigmoid:0
Method name is: tensorflow/serving/predict#同样也不支持GPU
saved_model_cli show --dir /models/mydssm/13339343/
The given SavedModel contains the following tag-sets:
serve
3.2测试请求
curl -d '{"instances": [{"app_category":"1","app_domain":"2","app_id":"3","banner_pos":"4","c1":"5","c14":"6","c15":"7","c16":"8","c17":"9","c18":"10","c19":"11","c20":"12","c21":"13","device_conn_type":"14","device_id":"15","device_ip":"16","device_model":"17","device_type":"18","hour":"19","site_category":"20","site_domain":"21","site_id":"22"}]}' -X POST http://localhost:8501/v1/models/mydssm:predict
{"predictions": [{"logits": -2.64485741,"probs": 0.0663066804}]#https://github.com/tensorflow/serving/issues/2104
>>> import json,requests
>>> heads = {"content-type": "application/json"}
>>> jd={"signature_name": "serving_default","instances":[{"app_category":"1","app_domain":"2","app_id":"3","banner_pos":"4","c1":"5","c14":"6","c15":"7","c16":"8","c17":"9","c18":"10","c19":"11","c20":"12","c21":"13","device_conn_type":"14","device_id":"15","device_ip":"16","device_model":"17","device_type":"18","hour":"19","site_category":"20","site_domain":"21","site_id":"22"}]}
>>> requests.post(url,data=json.dumps(jd),headers=heads).json()
{'predictions': [{'logits': -2.64485741, 'probs': 0.0663066804}]}
4、部署 tf-serving使用GPU,需要docker安装GPU版本
4.1拉取images
docker pull tensorflow/serving:latest-gpu4.2安装nvidia docker容器工具
CentOS
sudo dnf clean expire-cache \&& sudo dnf install -y nvidia-container-toolkit-base
nvidia-ctk --version
sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
grep " name:" /etc/cdi/nvidia.yamlUbuntu
sudo apt-get update \&& sudo apt-get install -y nvidia-container-toolkit-base
nvidia-ctk --version
sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
grep " name:" /etc/cdi/nvidia.yaml4.3启动
docker run --runtime=nvidia -p 8501:8501 \ --mount type=bind,\ source=/tmp/tfserving/serving/tensorflow_serving/servables/tensorflow/testdata/saved_model_half_plus_two_gpu,\ target=/models/half_plus_two \ -e MODEL_NAME=half_plus_two -t tensorflow/serving:latest-gpu --per_process_gpu_memory_fraction=0.5
sudo docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi
综上所述,不足之处请参考,英伟达官方介绍,tf-serving官方github
拜拜
相关文章:
推荐算法再次踩坑记录
去年搞通了EasyRec这个玩意,没想到今年还要用推荐方面的东西,行吧,再来一次,再次踩坑试试。1、EasyRec训练测试数据下载:git clone后,进入EasyRec,然后执行:bash scripts/init.sh 将…...
STM32 (十五)MPU6050
简介前言一、MPU6050简介MPU6050是一款性价比很高的陀螺仪,可以读取X Y Z 三轴角度,X Y Z 三轴加速度,还有内置的温度传感器,在姿态解析方面应用非常广泛。下面是它在淘宝上的参数图产品尺寸产品参数产品原理图:二、硬…...
使用yarn,依赖报各种错误怎么办
使用 yarn^3.x 版本时,默认并不会安装包到 node_modules,因为 yarn3.x 是即插即用的,也就是说如果你下载过这个包,yarn只会生成一个 Png文件,然后将包的路径 link 到下载过的地方,这样可以省去很多时间。而…...
面试官:rem和vw有什么区别
"rem" 和 "vw"的区别 "rem" 和 "vw" 都是用于网页设计的CSS单位。 "rem" 是相对于根元素的字体大小来计算的单位,即相对于 "html" 标签的字体大小。例如,如果 "html" 标签的字…...
【GPT-4】GPT-4 相关内容总结
目录 编辑 官网介绍 GPT-4 内容提升总结 GPT-4 简短版总结 GPT-4 基础能力 GPT-4 图像处理 GPT-4 技术报告 训练过程 局限性 GPT-4 风险和应对措施 开源项目:OpenAI Evals 申请 GPT-4 API API的介绍以及获取 官网介绍 官网:GPT-4 API候…...
5.springcloud微服务架构搭建 之 《springboot集成Hystrix》
1.springcloud微服务架构搭建 之 《springboot自动装配Redis》 2.springcloud微服务架构搭建 之 《springboot集成nacos注册中心》 3.springcloud微服务架构搭建 之 《springboot自动装配ribbon》 4.springcloud微服务架构搭建 之 《springboot集成openFeign》 目录 1.项目…...
【工作中问题解决实践 七】SpringBoot集成Jackson进行对象序列化和反序列化
去年10月份以来由于公司和家里的事情太多,所以一直没有学习,最近缓过来了,学习的脚步不能停滞啊。回归正题,其实前年在学习springMvc的时候也学习过Jackson【Spring MVC学习笔记 五】SpringMVC框架整合Jackson工具,但是…...
香港服务器遭受DDoS攻击后如何恢复运行?
您是否发现流量异常上升?您的网站突然崩溃了吗?当您注意到这些迹象时,可能是在陷入了DDoS攻击的困境,因而,当开始考虑使用香港服务器时,也应该考虑香港服务器设备受DDoS攻击时,如何从中恢复。 在 DDoS 攻击香港…...
【Hive】配置
目录 Hive参数配置方式 参数的配置方式 1. 文件配置 2. 命令行参数配置 3. 参数声明配置 配置源数据库 配置元数据到MySQL 查看MySQL中的元数据 Hive服务部署 hiveserver2服务 介绍 部署 启动 远程连接 1. 使用命令行客户端beeline进行远程访问 metastore服务 …...
IP-GUARD如何强制管控电脑设置开机密码要符合密码复杂度?
如何强制管控电脑设置开机密码要符合密码复杂度? 7 可以在控制台-【策略】-【定制配置】,添加一条配置,开启系统密码复杂度检测。 类别:自定义 关键字:bp_password_complexity 内容:1 效果图:...
剑指 Offer II 031. 最近最少使用缓存
题目链接 剑指 Offer II 031. 最近最少使用缓存 mid 题目描述 运用所掌握的数据结构,设计和实现一个 LRU(Least Recently Used,最近最少使用) 缓存机制 。 实现 LRUCache类: LRUCache(int capacity)以正整数作为容量 capacity初始化 LRU缓…...
44岁了,我从没想过在CSDN创作2年,会有这么大收获
1998年上的大学,02年毕业,就算从工作算起,我也有20余年的码龄生涯了。 但正式开启博文的写作,却是2021年开始的,差不多也就写了2年的博客,今天我来说说我在CSDN的感受和收获。 我是真的没想到,…...
相位相参信号源的设计--示波器上的信号不稳定,来回跑?
目录乱跑的波形边沿触发触发方式外部触发相参与非相参相位相参的射频信号源样机外观与内部设计软件设计上位机软件信号源使用方法PWM触发信号射频信号的时域波形射频信号的频谱输出功率在示波器的实际使用当中波形在示波器的时域上乱跑,左右移动,定不下来…...
Spring Boot 整合 RabbitMQ 多种消息模式
Spring Boot 整合 RabbitMQ 多种消息模式 准备工作集成 RabbitMQ发布/订阅模式点对点模式主题模式总结Spring Boot 是一个流行的 Java 应用程序开发框架,而 RabbitMQ 是一款可靠的消息队列软件。将 Spring Boot 和 RabbitMQ 结合起来可以帮助我们轻松地实现异步消息传递。Rabb…...
node多版本控制
前言 最近在折腾Python,并将node升级至v18.14.2。突然发现一个旧项目无法运行,也无法打包,里面的node-sass报错,显然这是因为node版本过高导致的。 将node版本降低至以前的v14.16.0,果然立马就能正常运行。 存在不同…...
Redis set集合
Redis set (集合)遵循无序排列的规则,集合中的每一个成员(也就是元素,叫法不同而已)都是字符串类型,并且不可重复。Redis set 是通过哈希映射表实现的,所以它的添加、删除、查找操作…...
漫画:什么是希尔排序算法?
希尔排序(ShellSort)是以它的发明者Donald Shell名字命名的,希尔排序是插入排序的改进版,实现简单,对于中等规模数据的性能表现还不错 一、排序思想 前情回顾:漫画:什么是插入排序算法…...
问卷工具选择要看哪些方面?
通常来讲,我们在使用一款问卷制作工具制作问卷时会有哪些需求呢? 一、用户需求 1、操作简单,易上手。 2、能够满足用户个性化的需求。 3、提供多语言服务。 4、能够帮助发布以及数据收集。 5、简化数据分析 市面上的问卷调查制作工具都…...
Qt之QPainter绘制多个矩形/圆形(含源码+注释)
一、绘制示例图 下图绘制的是矩形对象,但是将绘制矩形函数(drawRect)更改为绘制圆形(drawEllipse)即可绘制圆形。 二、思路解释 绘制矩形需要自然要获取矩形数据,因此通过鼠标事件获取每个矩形的rect数…...
介绍两款红队常用的信息收集组合工具
介绍两款红队常用的信息收集组合工具1.Ehole本地识别FOFA识别结果输出2.AlliN1.Ehole EHole(棱洞)3.0 红队重点攻击系统指纹探测工具 EHole是一款对资产中重点系统指纹识别的工具,在红队作战中,信息收集是必不可少的环节,如何才能从大量的资…...
设计系统文本化:用YAML/JSON统一管理设计令牌,实现多端一致与自动化
1. 项目概述:当设计系统遇上纯文本 最近在跟一个跨职能团队协作时,我们遇到了一个典型的老大难问题:设计师在Figma里更新了一个按钮的主色调,前端工程师在代码库里改了对应的CSS变量,但负责撰写产品文档和营销材料的同…...
[特殊字符] 科普:论文查重的AI原理是什么?这个免费工具把“黑科技“讲明白了
同学们好,我是你们的论文写作科普博主。 今天不聊怎么选题,不聊怎么写文献综述,咱们来聊一个99%的同学都踩过坑的环节——查重。 先问大家一个问题:你知道查重到底是怎么查的吗? 很多同学以为查重就是"把你的文…...
Adobe-GenP 3.0终极指南:如何免费激活Adobe CC全系列软件
Adobe-GenP 3.0终极指南:如何免费激活Adobe CC全系列软件 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP Adobe-GenP 3.0是一款强大的Adobe Creative Cl…...
【DSP学习】外部中断实验-基于普中DSP28335开发攻略
参考材料 普中DSP28335开发攻略 一、外部中断配置 1 失能 CPU 级中断,并初始化 PIE 控制器寄存器和 PIE 中断向量表在前面学习中断章节中,我们知道 F28335 的外设中断需通过 PIE 控制器来管理,因此需要初始化 PIE 相应的寄存器和中断向量表。…...
从Landsat 8数据到地表温度:劈窗算法实战解析
1. 从Landsat 8数据到地表温度:劈窗算法实战解析 地表温度是研究城市热岛效应、农业干旱监测、气候变化等领域的重要参数。Landsat 8卫星搭载的热红外传感器TIRS(Thermal Infrared Sensor)提供了两个热红外波段(B10和B11ÿ…...
基于Javaweb的医院在线挂号系统(10007)
有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运行一键启动项目&…...
别再只懂BDF了!手把手教你理解PCIe ARI如何将Function数量扩展到256个
突破PCIe传统限制:深入解析ARI如何实现256个功能扩展 在数据中心和云计算架构快速发展的今天,虚拟化技术对硬件资源分配提出了更高要求。传统PCIe设备的8个功能限制已成为制约虚拟功能扩展的瓶颈,特别是在SR-IOV(单根I/O虚拟化&am…...
Hydrin 1 ([Arg8, Gly10, Lys11, Arg12]-Vasotocin)
一、基础信息多肽名称:Hydrin 1,加压催产素变体 [Arg8, Gly10, Lys11, Arg12]-Vasotocin 三字母序列:Cys-Tyr-Ile-Gln-Asn-Cys-Pro-Arg-Gly-Gly-Lys-Arg 单字母序列:CYIQNCPRG GKR 氨基酸数目:12 aa 结构特征ÿ…...
FigmaCN中文界面实战指南:深度解析浏览器插件本地化技术实现
FigmaCN中文界面实战指南:深度解析浏览器插件本地化技术实现 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN Figma作为全球领先的云端设计协作平台,其英文界面一…...
DownKyi哔哩下载姬:5步快速掌握B站视频下载完整教程
DownKyi哔哩下载姬:5步快速掌握B站视频下载完整教程 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等…...
