当前位置: 首页 > news >正文

app免费模板下载网站电子商务网站建设与管理读后感

app免费模板下载网站,电子商务网站建设与管理读后感,西樵网站设计,有网址如何做网站赚钱1.背景前段时间,使用 python unicorn xgboost pytorch 写了一个机器学习训练平台的后端服务,根据公司开发需要,需具备两种需求:1. 可以本地加载使用;2.支持web服务,2. 使用本地加载使用2.1 问题针对第一…

1.背景

前段时间,使用 python + unicorn + xgboost + pytorch 写了一个机器学习训练平台的后端服务,

根据公司开发需要,需具备两种需求:1. 可以本地加载使用;2.支持web服务,

2. 使用本地加载使用

2.1 问题

针对第一种方式,为避免客户安装使用python 环境,因此将项目打包成.exe ,使用pyinstaller 进行打包,但

1.遇到体积大的问题,于是根据网上建议,使用为目创建虚拟环境,同时根据requiremnts ,将本项目所用的包全部放在虚拟环境下,最终2G 项目被打包成800兆,项目可在window上启动;

2.项目启动后,测试发现,使用.exe (onedir)项目启动效率比使用vscode 启动项目,要低非常多,大概降低5-6倍;

后来使用各种方法:

1. 网上说,除了pyinstaller 外,可使用Nuitka 编译打包,但经过测试,发现没有作用;

2.尝试使用嵌入式 Python + 脚本启动(性能 100%),经测试发现,效果还是不行;

3.使用Conda 安装带 MKL 的完整环境 ,测试发现:效果还是差;

那么到底是什么影响打包成.exe 的性能变差呢?

1.XGBoost 的 n_jobs=-1 会 spawn N 个子进程(Windows 必然 spawn);

2.每个子进程启动时:

  • 初始化新的 Python 解释器

  • 走 PyInstaller runtime hook 重定向模块搜索路径

  • 重新加载 numpy, scipy, xgboost.pyd(C++ 库初始化)

3.所有这些步骤在源码 + fork (linux)下几乎是 0 成本,但在 spawn(window) 下是全量重复执行;

4.模型越大、并行核心数越多,额外开销就越大

2.2 解决办法

针对于window 的.exe  ,

    os.environ['OMP_NUM_THREADS'] = '1'

    os.environ['OPENBLAS_NUM_THREADS'] = '1'

    os.environ['MKL_NUM_THREADS'] = '1'

    os.environ['VECLIB_MAXIMUM_THREADS'] = '1'

    os.environ['NUMEXPR_NUM_THREADS'] = '1'

    torch.set_num_threads(1)

xgboost(n_jobs=1)

3. 支持web 服务

3.1 问题

对于fastapi +  unicorn + xgboost + pytorch  ,其实更适合用于web 项目,因此,我将项目拷贝到服务器

在服务器上使用nginx 反向代理

但这里遇到2个问题:

问题1:针对本地加载,我接口端口用的是8000,因此接口都是

http:://127.0.0.1:8000/ 接口名

而我使用web 端口之后,nginx 默认使用80端口,因此,对内网代理转发后,会变成

http::// 公网id :80(可省略)/接口名,导致,和前端对接的时候,前端需要根据是本地pc 部署还是web 部署 使用不同的接口

问题2:

在训练过程中的数据发送,选择sse 方式,因此需要在nginx 配置sse

3.2 解决方案

对于web 端,内网端口改成8080 (或者其他非8000端口),然后nginx 监听端口从80 改成8000,

C:\nginx\nginx-1.28.0>start nginx.exe

C:\nginx\nginx-1.28.0>nginx -s reload

C:\nginx\nginx-1.28.0>nginx -s quit   

http://www.dtcms.com/a/418492.html

相关文章:

  • 大语言模型LLM解决AI幻觉方法的深度分析
  • Spec 工作流
  • Genome Biology | scKAN:连接单细胞数据分析与药物发现的可解释架构
  • Javascript输入输出
  • BEVfusion解读(三)
  • JavaScript身份证号校验算法
  • 【centos生产环境搭建(三)jdk环境配置】
  • HarmonyOS NEXT 5.0 的星闪(NearLink)开发应用案例
  • Redis 入门:高效缓存与数据存储的利器
  • 贝尔利网站免费永久php免备案空间
  • Python字典:高效数据管理的瑞士军刀
  • Requests 库详解:爬虫工程师的 “瑞士军刀”
  • 用python实现将csv文件数据插入到mysql
  • 【第十五周】机器学习的学习笔记11
  • 一款强大的开源 MQTT 消息服务器:EMQX
  • 如何 网站优化公司做网站百度可以搜到吗
  • 门户网站 管理系统网站关键词怎么填写
  • lucene 8.7.0 版本中的倒排索引、数字、DocValues三种类型的查询性能对比
  • 关于npm和pnpm
  • Django 中的元类(Metaclass)应用及生产场景示例
  • 以涡度通量塔的高频观测数据为例,基于MATLAB开展;生态碳汇涡度相关监测与通量数据分析实践技术应用
  • 慈溪网站建设哪家好襄阳蒂凯网络网站建设小程序
  • 做网站保存什么格式最好建设银行企业网上银行网站打不开
  • 数据仓库和商务智能考试考点及关系梳理
  • 灵犀互娱笔试
  • 【多线程】什么是原子操作(Atomic Operation)?
  • Visual Studio Code 的 AI 插件汇总
  • Java学习笔记六(集合)
  • 简易分析慢 SQL 的流程和方法
  • Docker 中删除镜像与容器的完整指南