• 周一. 8月 15th, 2022

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

深度学习项目部署在阿里云服务器 记录

admin

11月 28, 2021

1.必备工具

winscp和Xshell

WinSCP 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户端。同时支持 SCP 协议。它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件。

XShell是一个强大的安全终端模拟软件.XShell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。

百度云:

链接:https://pan.baidu.com/s/1bIFko0h1fh_9dHKmqKvKNg
提取码:ehf6

2.配置Anaconda环境

3.创建一个Anaconda虚拟环境

conda create --name my_test python=3.6#创建一个名称为my_test

4.激活虚拟环境

activate my_test

5.切换环境

  查看已有虚拟环境

conda env list

  切换到想要的虚拟环境,这里我切换到my_test

conda activate my_test

6.导出本地的深度学习环境依赖包

在命令行中输入

pip freeze>requirements.txt

7.在云服务器上切换到自己的虚拟环境,然后通过pip 安装从本地导出的环境依赖包

安装requirements文件中的包

pip install -r requirements.txt

8.在服务器上run项目(predict.py)

gunicorn -b 0.0.0.0:端口号 predict_y1:app -D --timeout=200 

1.gunicorn参数介绍

2.gunicorn安装

https://blog.csdn.net/yuhaibao324/article/details/107716073

有可能遇到后台有一个进程在运行着,被占用需要kill的情况:
查看当前进程
netstat -nlp | grep 5234
杀死当前进程
kill -9 进程号

from flask import Flask, request
app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False
# route()方法用于设定路由;类似spring路由配置
@app.route("/predict_zjp/", methods = ["POST"])
def  runzjp():
    data = request.get_json()
    print(data)
    content = data["text"]
    flagA = data["flagA"]
    flagB = data["flagB"]
    flagC = data["flagC"]
    print(data["text"])
    print(data["flagA"])
    print(data["flagB"])
    print(data["flagC"])
    result = predict(content,flagA,flagB,flagC)
    print(result)
    return result

9.在本地通过post一个json格式的data访问服务器,服务器return一个json

# coding=utf-8
import json
import requests
from urllib3.util import response

url = 'http://IP地址:端口号/predict_zjp/'
headers = {
    "Content-Type": "application/json;charset=utf8"
}
# post的数据
data = {"text":"自2018年始,被申诉人陈健为了牟取利益,从他人(另案处理)处购进大量非法进口卷烟、伪劣卷烟等用于销售,并将上述购进的烟品囤积在河南省新乡市红旗区李庄涵西街道1楼152室,其中已部分销售给李奇、徐长青等人,销售金额共计人民币6400元。2019年3月5日,被告人陈健驾驶一辆三轮车来到莆田市荔城区黄石镇**附近,与一名陌生男子(另案处理)接头交易后,运载新购进的非法进口卷烟、伪劣卷烟等行至红旗区涵西街道附近三岔路口时,被新乡市红旗区烟草专卖局当场查获。次日,新乡市公安局涵江分局从被告人陈健租赁的1楼152室内扣押到非法进口卷烟、伪劣卷烟等烟草专卖品。经鉴定,上述被扣押的全部卷烟,其中假冒注册商标且伪劣卷烟共计237条、伪劣卷烟共计897条、非法进口的真品卷烟共计1388条、非法进口的其他卷烟共计514条、非法渠道的真品卷烟共计48条。经物价认定,上述卷烟共计价值人民币812694.63元。法院判处被申诉人陈健赔偿烟草贩卖商以及人员烟草金额,但陈健以各种理由仍未实施,请求检察院依法处理陈健的违法经营行为","flagA":1,"flagB":0,"flagC":0}
r = requests.post(url, data=json.dumps(data),headers=headers,timeout=300)
print(r.text)
# 输出的数据
# [{"服务id": "002005", "服务质量": 0.0}, {"服务id": "002004", "服务质量": 0.6666666666666666}, {"服务id": "002002", "服务质量": 1.0}

10.遇到的问题以及解决方案

keras  反复调用model 模型 出错:

Cannot interpret feed_dict key as Tensor: Tensor Tensor("Placeholder_8:0", shape=(3, 3, 128, 256), dtype=float32) is not an element of this graph.

解决方法:

后端我使用的是flask框架,上传一段文本传入基于tensorflow的keras模型进行预测,重复预测时,报告上述错误.原因大概是第二次预测时,model底层tensorflow的session中还有数据.

解决方法:在调用模型前面加一句 keras.backend.clear_session()

发表回复

您的电子邮箱地址不会被公开。