首页 > 其他分享 >本地环境与线上服务Docker的问题

本地环境与线上服务Docker的问题

时间:2023-01-04 16:23:21浏览次数:55  
标签:inputs 服务 本地 torch 报错 sm 显卡 Docker model

一、环境相关

一般来说,环境最重要,尤其是本地和线上环境的差异。
可能会存在线上显卡算力太高,与本地显卡相关框架不匹配;
比如:线上显卡:NVIDIA A10,算力8.6,则需要CUDA版本:建议CUDA11.4或更高,CUDA11以下(CUDA10)的都会报错

基础镜像选择:选择对应的镜像即可

PyTorch版本选择:https://pytorch.org/get-started/locally/

【其他软件包】

transformers,一般python3.6只支持4.18.0(好像),想用新的特性可能需要更新Python版本

二、模型相关

由于线上服务是实时且持续进行的,需要对显存进行控制。

一般情况下使用

model.to(device)
model.eval()
with torch.no_grad():
    inputs = {k: v.to(device) for k, v in inputs.items()}
    outputs = model(**inputs).logits
    output_softmax = torch.softmax(outputs, -1)[:,1].item()

但显存占用仍然会一直上涨,查询资料了解到是因为后续的计算依旧在cuda上计算,因此需要在模型预测完成后,就将数据全转到cpu。

model.to(device)
model.eval()
with torch.no_grad():
    inputs = {k: v.to(device) for k, v in inputs.items()}
    outputs = model(**inputs).logits.cpu()  # 转到cpu
    output_softmax = torch.softmax(outputs, -1)[:,1].item()

经测试,显卡可以保持占用不变。

【参考】https://www.pudn.com/news/6228c8f89ddf223e1ad09dc5.html

【注意】最好在容器中确认一下调用显卡是否成功,最好测试整个推理过程。因为即使torch.cuda.is_available() == True 也不一定模型正常。

三、可能的报错与解决

1、安装opencv-python时候的错误

【错误】ImportError: libGL.so.1: cannot open shared object file: No such file or directory

【解决】在镜像Dockerfile中加入sudo apt-get install libgl1

2、使用显卡进行运算时候报错

【错误】GeForce *** *** with CUDA capability sm_86 is not compatible with the current PyTorch installation. The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_60 sm_61 sm_70 sm_75 compute_37

【解决】使用CUDA11.4或更高版本以及对应的深度学习框架,CUDA11以下(CUDA10)的都会报错

标签:inputs,服务,本地,torch,报错,sm,显卡,Docker,model
From: https://www.cnblogs.com/ache/p/17025197.html

相关文章

  • 搭建本地的git仓库
    折腾了快一天了,终于搭建成功了。分享一下搭建的步骤:一、GIT仓库的创建1.addusergit2.passwdgit此例设置git的密码为1234563.cd/home/git4.gitinit--bare......
  • 服务器的用途有哪些
    服务器的用途有哪些1、外贸网站与电子商务平台 企业可以通过租用服务器,在服务器上建立网站或博客、电子商务平台等,不仅安全好用,而且性价比也是很高的。可以通过服务器提......
  • SolarMesh(微服务监管平台)安装教程
    SolarMesh简介SolarMesh是基于服务网格构建的微服务监管平台。SolarMesh基于Istio及容器技术,提供微服务流量监控和管理,提供完善的非侵入式服务治理解决方案,在提供Istio流......
  • 关于sourcetree新建远端分支后本地没有同步更新的问题
    点击右上角的命令行模式  输入:gitremoteupdateorigin--prune并回车   回到Sourcetree,可以看到远程分支多了一个,如果没有就刷新一下Sourcetree 原贴:(4......
  • 关于新服务器安装Mysql服务后注意事项:1.表名区分大小写 2.日期中不允许出现值为0
    新购入一台Linux服务器,将项目部署至服务器,项目出现问题记录如下:1.项目使用JPA,实例类中表名为大写,JPA查询显示该表不存在,原因是Mysql设置中默认表名区分大小写showvari......
  • Dockerfile发布微服务部署到容器
    Dockerfile发布微服务部署到容器idea里打包jar包编写Dockerfile#基础镜像使用javaFROMjava:8#作者MAINTAINERzzyy#VOLUME指定临时文件目录为/tmp,在主机/var/lib/dock......
  • FTP服务器的使用
    我们之前在讲文件传输的时候讲过scp和sftp,今天我们认识一个新的传输协议:ftp,他一般会和sftp拿来对比,我们来看一下他们的区别:文件传送协议FTP(FileTransferProtocol)是T......
  • windows使用/服务(6)Win11 打开 IE 浏览器
    windows11系统使用基于Chromium内核的Edge浏览器,IE浏览器直接被取代,使用以下方案可以调用IE浏览器但是还是兼容不是很好有些基于IE开发的网站的功能依然兼容不友好,需......
  • Docker网络
    1、docker0当Docker启动时,会自动在主机上创建一个docker0虚拟网桥,实际上是Linux的一个bridge,可以理解为一个软件交换机。它会在挂载到它的网口之间进行转发。......
  • arcgis server设置服务的Directory权限
    一、系统环境、操作系统:windows10软件版本:arcgisserver10.2二、操作步骤1、登录admin的管理平台在浏览器中输入http://localhost:6080/arcgis/admin/login(ip地址根据......