ImportError: xxx.so: failed to map segment from shared object - uWSGI部署 pytorch和tensorflow 报错 (已解决)

2023-11-07

        最近将本地写好的基于Flask的模型调用后端(含torch和tensorflow代码)部署到服务器(Ubuntu 20.04)上遇到了困扰了我两天的问题。

        按理说,深度学习研究者开发可视化系统,并进行部署的时候应该很容易遇到这种问题。但是我搜索了两天,和询问了好几页的GPT也没看见一个系统的解决方案(不知道是不是太简单了QWQ)。

        先看报错:

from torch._C import *  # noqa: F403
ImportError: libtorch_cpu.so: failed to map segment from shared object

              

报错大概意思是映射共享库文件失败。

虽然和库与python的版本及其依赖有关,但最后排查主要问题还是出在uwsgi对进程的内存分配不够

解决方法:

1.

安装与当前python版本对应的torch和tensorflow,同时确保这些库的依赖版本不冲突。如tensorflow 2.4.0对应 numpy 1.19.5

2.

正确安装python的uwsgi,如果安装不成功请先执行:

$ sudo apt-get install libpython3.x-dev 

其中x为python版本,然后执行

pip install uwsgi

3.

重点配置uwsgi.ini以下参数(加粗)—— 按个人项目情况,但内存相关的配置尽量大些。

[uwsgi]
# uwsgi 启动时,所使用的IP何端口
module = xxx

#http = :5050

socket = 0.0.0.0:5050#端口保持一致


buffer-size=32768000  #uwsgi进程的缓冲区大小
limit-as = 2560MB  #uwsgi进程的地址空间限制
single-interpreter = true#单解释器

plugin=python3#指定python
pythonpath=/home/ubuntu/.local/lib/python3.8#指定python解释器路径


master = true 
#daemonize =/path
chdir=/path/to/your/project
processes = 4
threads = 4
max-requests = 1000
harakiri=50
py-autoreload=1#热重载

memory-report = true

 

解释:

如注释,因为共享库文件占用内存太大,所以uwsgi需要对每个需要共享库文件的进程多分配空间。所以前两项与内存大小有关的稍微大一些(以G为单位)

plugin和pythonpath主要是为了防止启动uwsgi的python不是自己期待的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ImportError: xxx.so: failed to map segment from shared object - uWSGI部署 pytorch和tensorflow 报错 (已解决) 的相关文章

随机推荐

  • 驱动开发--汇总

    一 驱动相关概念 1 什么是驱动 能够驱使硬件实现特定功能的软件代码 根据驱动程序是否依赖于系统内核将驱动分为裸机驱动和系统驱动 2 逻辑驱动和系统驱动的区别 裸机驱动 编写的驱动代码中没有进行任何内核相关API的调用 开发者自己配置寄存器
  • CMake的安装及使用

    1 安装 windows下安装 首先下载 CMake官网下载地址 里面好多版本 根据自己需要版本进行下载 安装过程中选择了自动添加环境 所以安装完后不用手动添加环境了 但是此时必须得重启电脑 变量才能使用 否则无法对Cmake安装进行测试
  • SpringMVC学习记录

    提示 这只是个人学习时的总结 无指导意义 目录 前置 Spring的基本知识 HelloWorld Step 1 创建Maven项目 2 导入pom依赖 3 加入JavaWeb环境 4 配置Web xml 5 配置springmvc ser
  • Redis安装只看这一篇文章就够了

    目录 一 单机安装Redis 1 1 安装Redis依赖 1 2 上传安装包并解压 1 3 启动 1 3 1 默认启动 1 3 2 指定配置启动 1 3 3 开机自启 二 Redis客户端 2 1 Redis命令行客户端 2 2 图形化桌面
  • AI那些事儿之验证集、shuffle作用

    验证集干啥的 验证集合测试集哪个更重要 一句话 训练集用于 自动地 训练调整模型中网络参数 weights 验证集用于调超参数 epochs轮数 几层比较合适 啥时候过拟合 要不要dropout 要多大程度 测试集测试模型泛化能力 验证集和
  • 多元分类预测

    文章目录 效果一览 文章概述 部分源码 参考资料 效果一览 文章概述 多元分类预测 Matlab 灰狼算法 GWO 优化xgboost的分类预测模型 多特征输入模型 GWO xgboost分类预测 多特征输入单输出的二分类及多分类模型 程序
  • SQL 时间计算

    select from unixtime unix timestamp to date now yyyy mm dd yyyymmdd 时间差 转化为小时 保留两位小数 select round unix timestamp 2022 02
  • Linux(Ubuntu)下PyQt WebEngineView加载本地HTML文件及显示空白问题

    1 加载本地Html网页 import sys from PyQt5 QtCore import from PyQt5 QtGui import from PyQt5 QtWidgets import from PyQt5 QtWebEng
  • VC编程unicode字符集下char数组转化为CString

    struct sockaddr in addr int addr len sizeof struct sockaddr in CString strState 记得要用char接收数据 因为网络中传输的数据只是和编码方式无关的字节流 所以接
  • 时序预测

    时序预测 MATLAB实现SSA CNN GRU麻雀算法优化卷积门控循环单元时间序列预测 目录 时序预测 MATLAB实现SSA CNN GRU麻雀算法优化卷积门控循环单元时间序列预测 预测效果 基本介绍 模型描述 程序设计 参考资料 预测
  • 后端使用aes 加密

    package com util import com sun org apache xerces internal impl dv util Base64 import org apache commons codec binary Ba
  • [Bug]Process finished with exit code -1073741819 (0xC0000005)

    项目场景 环境 Windows Tensorflow 2 0 python 3 6 问题描述 同样的一套代码 在之前的数据集上运行无误 换了个新的数据集进行实验 结果在读取数据训练的时候报错然后程序自动终止 错误信息 Process fin
  • CentOS7.3下Docker自定义镜像

    本博客写于2017 04 25 18 14 对版本不一致而导致的结果不准确的问题表示抱歉
  • windows11,OpenOCD 调试FPGA用作jtag

    使用ft2232H作为jtag通过openocd调试fpga xcvu9P virtex II fpga型号 openocd是什么 自行百度 FT2232H官网文档 自行百度 5 示例 Loading a Xilinx Spartan 6
  • Acwing 285. 没有上司的舞会

    include
  • Spring事务配置(配置文件的形式)

    声明了事务通知后 就需要将它与切入点关联起来 由于事务通知是在
  • Easyexcel导出带下拉框选项excel模板(解决下拉框超50个的问题)

    1 为了避免excel下拉框选项过多会导致内容不显示 或者生成的时候报错 String literals in formulas can t be bigger than 255 characters ASCII easyexcel 将下拉
  • 使用maven方式创建springboot项目

    使用Spring Initializr创建spring boot项目 因为外网问题导致很难成功 所以只能使用maven方式 这里介绍下该方式 壹 创建maven项目 贰 整改为springboot项目 叁 测试 壹 创建maven项目 创建
  • Ubuntu/Linux用户管理与权限管理(超详细解析)

    由于实验室几个老师的学生要共同使用一台服务器 所以需要规范一下服务器的使用 并且给各位学生配置相关的用户和权限 之前一直都是自己用 所以借此机会学习和总结一下Linux服务器的用户管理与权限管理 Ubuntu Linux用户管理与权限管理
  • ImportError: xxx.so: failed to map segment from shared object - uWSGI部署 pytorch和tensorflow 报错 (已解决)

    最近将本地写好的基于Flask的模型调用后端 含torch和tensorflow代码 部署到服务器 Ubuntu 20 04 上遇到了困扰了我两天的问题 按理说 深度学习研究者开发可视化系统 并进行部署的时候应该很容易遇到这种问题 但是我搜