目錄
寫在前面:
具體做法:
后端:
前端:
其他:
寫在前面:
我使用的微信小程序開(kāi)發(fā)工具是:“微信開(kāi)發(fā)者工具”,當(dāng)然你用其他的開(kāi)發(fā)工具應(yīng)該也差別不大;
人工智能模型用的是pytorch;
具體不介紹人工智能模型的保存,主要介紹一下flask的寫法;
具體做法:
后端:
首先你要把人工智能模型先保存下來(lái),因?yàn)槟悴豢赡苊看芜\(yùn)行這個(gè)模型的時(shí)候都重新訓(xùn)練一次對(duì)吧?關(guān)于模型保存,tensorflow和pytorch等都有不同的類似方法,這里就不詳細(xì)介紹了,主要是介紹一下,保存模型后的,flask的寫法。
寫flask的時(shí)候,先確保你已經(jīng)配置過(guò)環(huán)境了(如下,如果報(bào)錯(cuò)就是環(huán)境問(wèn)題,在相應(yīng)的地方pip一下環(huán)境就行):
?同時(shí)在同個(gè)文件夾下,聲明你的人工智能模型:
具體代碼:
import os.path
from flask import Flask, request
from itsdangerous import json
from project_xhy_.Test9_efficientNet import predict
app = Flask(__name__)# 聲明app
@app.route('/ppp', methods=['GET', 'POST'])
#’/ppp‘要與下面的定義方法的名字一樣,指的就是路徑,可以有多個(gè)
#methods需要自己去閱讀一下相關(guān)文檔,看一下你的需求是什么,我這里只用到了POST
def ppp():
if request.method == 'POST':#當(dāng)請(qǐng)求方法為POST的時(shí)候,執(zhí)行如下操作
graphl = request.form.get("attl")#獲取前端所提供的圖片
infol = predict.get_predict(graphl)#對(duì)圖片進(jìn)行模型預(yù)測(cè)
return json.dumps(infol, ensure_ascii=False)#將模型預(yù)測(cè)的結(jié)果返回給前端
if __name__ == '__main__':
app.run(host='0.0.0.0',port=9800)
#host=0.0.0.0,是指這個(gè)模型在本地網(wǎng)絡(luò)運(yùn)行,port=9800,就是端口號(hào)為9800
#如果是跑在服務(wù)器上的話,把host這個(gè)改一下就行
#最好自己看一下自己電腦哪個(gè)端口可以用,免得出錯(cuò);
前端:
在地址處需要填寫相應(yīng)的地址,需要與flask運(yùn)行時(shí)報(bào)出的地址一致(如下,劃紅線的就是需要填寫的地址),另外,你運(yùn)行前端代碼的時(shí)候,確保你的flask代碼一直在運(yùn)行,不要關(guān)閉:
if_sick(){
var that = this
wx.request({
url:'http://地址/ppp',//輸入請(qǐng)求的ip地址
method:'POST',//請(qǐng)求的方法
header: {'content-type': "application/x-www-form-urlencoded",},
data:{
attl:'C:/Users/asus/Desktop/img/l.jpg'//傳遞的內(nèi)容
},
success: function(res){//當(dāng)請(qǐng)求成功后的操作
console.log(res.data)
that.setData({
lr:res.data//將返回結(jié)果賦值給本地的lr
})
console.log("11",that.data.lr)//在控制臺(tái)輸出結(jié)果,檢驗(yàn)是否正確
}
})
//跟上面一樣,重復(fù)請(qǐng)求,只是傳入的東西不一樣,軟件功能要求
wx.request({
url:'http://地址/ppp',
method:'POST',
header: {'content-type': "application/x-www-form-urlencoded",},
data:{
attl:'C:/Users/asus/Desktop/img/r.jpg'
},
success: function(res){
console.log(res.data)
that.setData({
rr:res.data
})
console.log("22",that.data.rr)
}
})
//點(diǎn)擊按鈕后將返回的數(shù)據(jù)傳遞到下一頁(yè)面,因?yàn)閍i識(shí)別是需要時(shí)間的,所以加點(diǎn)延遲,避免傳遞空值
wx.showToast({
title: '識(shí)別中',
icon: 'none',
duration: 5000, //彈出提示框時(shí)長(zhǎng)
mask: true,
success(data) {
setTimeout(function () {
//要延時(shí)執(zhí)行的代碼
wx.navigateTo({
url: "../../pages/issueReport/issueReport?lefteye="+that.data.eye_left+"&righteye="+that.data.eye_right+"&name="+that.data.patientname+"&id="+that.data.patientid+"&rr="+that.data.rr+"&lr="+that.data.lr+"",
})
}, 5000) //延遲時(shí)間
}
})
其他:
1. 在微信開(kāi)發(fā)者工具里進(jìn)行本地調(diào)試的時(shí)候記得調(diào)整以下兩個(gè)地方:
????????(1)在"詳情"的本地設(shè)置里勾選:
? ? ? ? (2)在"設(shè)置"?的"代理設(shè)置"里選擇如下:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-557093.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-557093.html
到了這里,關(guān)于微信小程序的人工智能模型部署(flask)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!