阿里云服务器部署flask+Pytorch深度学习模型+nginx

本文涉及的产品
.cn 域名,1个 12个月
简介: 本课程设计是开发一款具备AI能力的微信小程序,为了能让真机测试通过并成功上线,需要把flask+Pytorch深度学习模型部署到阿里云服务器,实现前后端的交互。对于服务器部署我们使用nginx进行ssl证书部署,修改nginx.conf文件,安装gunicorn库通过命令gunicorn -w 2 -b 127.0.0.1:5000 -demo:app命令来运行项目,使前后端能够交互,实现小程序的核心功能。

一、自我介绍:
本人学的是电子信息专业,目前在读大二,因为课程设计是做一款具有AI能力的微信小程序,需要把Pytorch深度学习模型部署到云服务器上,实现真机能够测试的效果。在选择云服务器上,隔壁实验室的同学就推荐阿里云的服务器,说学生可以参加“飞天加速计划·高校学生在家实践”活动”,然后就开始了阿里云服务器的学习之旅。

二、两周学习经历:
这两周的学习确实收获还挺大的,而且也已经实现了将Pytorch深度模型部署到云服务器上,微信小程序通过接口能够访问服务器,真机测试也通过了。但是由于域名没有备案,所以暂时只能通过云服务器的IP地址访问。接下来就是学习的过程。
首先我们拥有一台服务器之后,需要申请域名,然后域名解析到服务器的IP地址,再就是申请阿里的免费的SSL证书,拥有证书之后要让我们的域名能够访问,必须要进行证书部署,我选择的是通过ngixn服务器部署,接下来就是我学习nginx遇到的各种问题和解决方法。
我们通过远程登录服务器,用户名默认是root,输入密码:XXXX。进入服务器是控制台之后,由于我使用的是ubuntu18.04版本会默认安装python3版本。首先,我们安装虚拟环境vurtualenv,通过pip3 insall virtualenv命令来执行,安装成功后新建虚拟环境目录env, t通过命令virtualenv env来执行。然后进入虚拟环境通过命令source env/bin/activate 进入成功后会显示(env)root@... 通过cd env命令进入虚拟环境根目录, 然后再安装nginx 通过sudo apt-get install nginx命令来执行,输入nginx-t 来检测配置文件有没有问题,返回结果是success ok 就是正确的配置,然后把公网的ip输入到浏览器上访问会出现Welcome to nginx!页面,接下来就是SSL证书部署到nginx.
我们通过命令cd /etc/nginx/命令切换到nginx目标下 通过ls命令可以查看到该目录下有nginx.f文件 通过vim nginx.f命令打开文件 输入命令i 进入insert模式可以修改数据 我们将server{}里面的listen 80注释掉,然后开启listen 443 ssl 进行证书部署 将下载的证书.pem和.key文件拷贝到该文件内,server_name后面填写自己的服务器域名,注意要通过ssh本地远程连接服务器,将文件上传服务端的指定目录下,然后我们再复制目标到nginx.f文件内,配置完成后通过nginx-t命令来验证配置文件是否正确,再通过命令systemctl nginx start命令重启nginx服务器,没有报错说明配置文件有效。
注意:这里千万要注意,如果我们的域名没有备案,那么我们即使将ssl证书部署到nginx服务器也无法正常访问网页,当然如果想验证可以通过命令curl http://XXXXXX:5000 如果能返回html的代码数据,说明证书部署是正确的,只不到需要等域名备案通过了才能访问网站,这个问题困扰了我好几天才解决,之前还以为是防火墙的原因,后面开放防火墙80 443端口还是不行,那就是域名需要备案。
接下来就是安装gunicor和后端flask+pytorch模型部署
我们在虚拟环境下通过命令sudo pip3 install gunicorn,使用Pycharm远程连接服务器,将本地项目上传到服务器的虚拟环境中,我们通过命令gunicorn -w 2 -b 127.0.0.1:5000 -demo:app命令来执行,可以发现服务能够运行,如何发现端口被占用,通过命令netstat找到被占用端口的PID ,通过kill -9 PID命令杀掉进程来释放端口就行了。最后再使用命令gunicorn -w 2 -b 127.0.0.1:5000 -demo:app将服务调动起来,打开小程序就可以进行前后端的交互了。

三、两周收获与总结
通过这两周的学习,我对云服务部署后端项目具备了一定的基础,特别是我这种linux操作系统小白来说收获是非常大的。我现在能够熟练的使用linux操作系统的常用指令对文件进行操作以及项目的部署,遇到的常见问题也可以解决,对应netstat和kill -9 PID命令使用也很流畅,知道端口被占用了该如何快速解决,最开心的我的小程序已经实现了前后端的交互,项目可以说是完成了,后面就是进行域名的备案,耐心的等待审核通过就可以使用我自己的域名来访问云服务器了。

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
算法 PyTorch 算法框架/工具
Pytorch学习笔记(九):Pytorch模型的FLOPs、模型参数量等信息输出(torchstat、thop、ptflops、torchsummary)
本文介绍了如何使用torchstat、thop、ptflops和torchsummary等工具来计算Pytorch模型的FLOPs、模型参数量等信息。
326 2
|
13天前
|
机器学习/深度学习 人工智能 PyTorch
Transformer模型变长序列优化:解析PyTorch上的FlashAttention2与xFormers
本文探讨了Transformer模型中变长输入序列的优化策略,旨在解决深度学习中常见的计算效率问题。文章首先介绍了批处理变长输入的技术挑战,特别是填充方法导致的资源浪费。随后,提出了多种优化技术,包括动态填充、PyTorch NestedTensors、FlashAttention2和XFormers的memory_efficient_attention。这些技术通过减少冗余计算、优化内存管理和改进计算模式,显著提升了模型的性能。实验结果显示,使用FlashAttention2和无填充策略的组合可以将步骤时间减少至323毫秒,相比未优化版本提升了约2.5倍。
33 3
Transformer模型变长序列优化:解析PyTorch上的FlashAttention2与xFormers
|
1月前
|
机器学习/深度学习 监控 PyTorch
深度学习工程实践:PyTorch Lightning与Ignite框架的技术特性对比分析
在深度学习框架的选择上,PyTorch Lightning和Ignite代表了两种不同的技术路线。本文将从技术实现的角度,深入分析这两个框架在实际应用中的差异,为开发者提供客观的技术参考。
46 7
|
2月前
|
机器学习/深度学习 自然语言处理 监控
利用 PyTorch Lightning 搭建一个文本分类模型
利用 PyTorch Lightning 搭建一个文本分类模型
63 8
利用 PyTorch Lightning 搭建一个文本分类模型
|
2月前
|
机器学习/深度学习 算法 PyTorch
深度学习笔记(十三):IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU、WIOU损失函数分析及Pytorch实现
这篇文章详细介绍了多种用于目标检测任务中的边界框回归损失函数,包括IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU和WIOU,并提供了它们的Pytorch实现代码。
262 1
深度学习笔记(十三):IOU、GIOU、DIOU、CIOU、EIOU、Focal EIOU、alpha IOU、SIOU、WIOU损失函数分析及Pytorch实现
|
2月前
|
机器学习/深度学习 自然语言处理 数据建模
三种Transformer模型中的注意力机制介绍及Pytorch实现:从自注意力到因果自注意力
本文深入探讨了Transformer模型中的三种关键注意力机制:自注意力、交叉注意力和因果自注意力,这些机制是GPT-4、Llama等大型语言模型的核心。文章不仅讲解了理论概念,还通过Python和PyTorch从零开始实现这些机制,帮助读者深入理解其内部工作原理。自注意力机制通过整合上下文信息增强了输入嵌入,多头注意力则通过多个并行的注意力头捕捉不同类型的依赖关系。交叉注意力则允许模型在两个不同输入序列间传递信息,适用于机器翻译和图像描述等任务。因果自注意力确保模型在生成文本时仅考虑先前的上下文,适用于解码器风格的模型。通过本文的详细解析和代码实现,读者可以全面掌握这些机制的应用潜力。
110 3
三种Transformer模型中的注意力机制介绍及Pytorch实现:从自注意力到因果自注意力
|
3月前
|
机器学习/深度学习 PyTorch 调度
在Pytorch中为不同层设置不同学习率来提升性能,优化深度学习模型
在深度学习中,学习率作为关键超参数对模型收敛速度和性能至关重要。传统方法采用统一学习率,但研究表明为不同层设置差异化学习率能显著提升性能。本文探讨了这一策略的理论基础及PyTorch实现方法,包括模型定义、参数分组、优化器配置及训练流程。通过示例展示了如何为ResNet18设置不同层的学习率,并介绍了渐进式解冻和层适应学习率等高级技巧,帮助研究者更好地优化模型训练。
190 4
在Pytorch中为不同层设置不同学习率来提升性能,优化深度学习模型
|
3月前
|
机器学习/深度学习 监控 PyTorch
PyTorch 模型调试与故障排除指南
在深度学习领域,PyTorch 成为开发和训练神经网络的主要框架之一。本文为 PyTorch 开发者提供全面的调试指南,涵盖从基础概念到高级技术的内容。目标读者包括初学者、中级开发者和高级工程师。本文探讨常见问题及解决方案,帮助读者理解 PyTorch 的核心概念、掌握调试策略、识别性能瓶颈,并通过实际案例获得实践经验。无论是在构建简单神经网络还是复杂模型,本文都将提供宝贵的洞察和实用技巧,帮助开发者更高效地开发和优化 PyTorch 模型。
50 3
PyTorch 模型调试与故障排除指南
|
2月前
|
Python
Flask学习笔记(二):基于Flask框架上传图片到服务器端并原名保存
关于如何使用Flask框架上传图片到服务器端并以其原名保存的教程。
86 1
|
2月前
|
Python
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件
这篇博客文章是关于如何使用Flask框架上传特征值数据到服务器端,并将其保存为txt文件的教程。
34 0
Flask学习笔记(三):基于Flask框架上传特征值(相关数据)到服务器端并保存为txt文件

热门文章

最新文章