国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于Flask測試深度學習模型預測

這篇具有很好參考價值的文章主要介紹了基于Flask測試深度學習模型預測。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Flask之最易懂的基礎教程一(2020年最新-從入門到精通)-CSDN博客

Flask程序運行過程:

所有Flask程序必須有一個程序實例。

Flask調用視圖函數(shù)后,會將視圖函數(shù)的返回值作為響應的內容,返回給客戶端。一般情況下,響應內容主要是字符串和狀態(tài)碼。

用戶向瀏覽器發(fā)送http請求,web服務器把客戶端所有請求交給Flask程序實例,程序用Werkzeug來做路由分發(fā),每個url請求,找到具體的視圖函數(shù)。路由的實現(xiàn)是通過route裝飾器實現(xiàn)的,調用視圖函數(shù),獲取數(shù)據(jù)后,把數(shù)據(jù)傳入模塊中,模塊引擎渲染響應的數(shù)據(jù),由Flask返回給瀏覽器。

?

二、Flask框架
1. 簡介
是一個非常小的框架,可以稱為微型框架,只提供了一個強勁的核心,其他的功能都需要使用拓展來實現(xiàn)。意味著可以根據(jù)自己的需求量身打造;
2. 組成
調試、路由、wsgi系統(tǒng)
模板引擎(Jinja2)
3. 安裝
pip install flask文章來源地址http://www.zghlxwxcb.cn/news/detail-852047.html

響應端? flask_server.py

import io
import json
import flask
import torch
import torch
import torch.nn.functional as F
from PIL import Image
from torch import nn
#from torchvision import transforms as T
from torchvision import transforms, models, datasets
from torch.autograd import Variable

# 初始化Flask app
app = flask.Flask(__name__)
model = None
use_gpu = False

# 加載模型進來
def load_model():
    """Load the pre-trained model, you can use your model just as easily.
    """
    global model
    #這里我們直接加載官方工具包里提供的訓練好的模型(代碼會自動下載)括號內參數(shù)為是否下載模型對應的配置信息
    model = models.resnet18()
    num_ftrs = model.fc.in_features
    model.fc = nn.Sequential(nn.Linear(num_ftrs, 102))  # 類別數(shù)自己根據(jù)自己任務來

    #print(model)
    checkpoint = torch.load('best.pth')
    model.load_state_dict(checkpoint['state_dict'])
    #將模型指定為測試格式
    model.eval()
    #是否使用gpu

    if use_gpu:
        model.cuda()

# 數(shù)據(jù)預處理
def prepare_image(image, target_size):
    """Do image preprocessing before prediction on any data.

    :param image:       original image
    :param target_size: target image size
    :return:
                        preprocessed image
    """
    #針對不同模型,image的格式不同,但需要統(tǒng)一至RGB格式
    if image.mode != 'RGB':
        image = image.convert("RGB")

    # Resize the input image and preprocess it.(按照所使用的模型將輸入圖片的尺寸修改,并轉為tensor)
    image = transforms.Resize(target_size)(image)
    image = transforms.ToTensor()(image)

    # Convert to Torch.Tensor and normalize. mean與std   (RGB三通道)這里的參數(shù)和數(shù)據(jù)集中是對應的,訓練過程中一致
    image = transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])(image)

    # Add batch_size axis.增加一個維度,用于按batch測試   本次這里一次測試一張
    image = image[None]
    if use_gpu:
        image = image.cuda()
    return Variable(image, volatile=True) #不需要求導

# 開啟服務   這里的predict只是一個名字,可自定義
@app.route("/predict", methods=["POST"])
def predict():
    # Initialize the data dictionary that will be returned from the view.
    #做一個標志,剛開始無圖像傳入時為false,傳入圖像時為true
    data = {"success": False}

    # 如果收到請求
    if flask.request.method == 'POST':
        #判斷是否為圖像
        if flask.request.files.get("image"):
            # Read the image in PIL format
            # 將收到的圖像進行讀取
            image = flask.request.files["image"].read()
            image = Image.open(io.BytesIO(image)) #二進制數(shù)據(jù)

            # 利用上面的預處理函數(shù)將讀入的圖像進行預處理
            image = prepare_image(image, target_size=(64, 64))

            preds = F.softmax(model(image), dim=1)
            results = torch.topk(preds.cpu().data, k=3, dim=1)
            results = (results[0].cpu().numpy(), results[1].cpu().numpy())

            #將data字典增加一個key,value,其中value為list格式
            data['predictions'] = list()

            # Loop over the results and add them to the list of returned predictions
            for prob, label in zip(results[0][0], results[1][0]):
                #label_name = idx2label[str(label)]
                r = {"label": str(label), "probability": float(prob)}
                #將預測結果添加至data字典
                data['predictions'].append(r)

            # Indicate that the request was a success.
            data["success"] = True
    # 將最終結果以json格式文件傳出
    return flask.jsonify(data)

"""
test_json = {
                "status_code": 200,
                "success": {
                            "message": "image uploaded",
                            "code": 200
                        },
                "video":{
                    "video_name":opt['source'].split('/')[-1],
                    "video_path":opt['source'],
                    "description":"1",
                    "length": str(hour)+','+str(minute)+','+str(round(second,4)),
                    "model_object_completed":model_flag
                    }
                    "status_txt": "OK"
                    }
                    response = requests.post(
                        'http://xxx.xxx.xxx.xxx:8090/api/ObjectToKafka/',,
                        data={'json': str(test_json)})
"""

if __name__ == '__main__':
    print("Loading PyTorch model and Flask starting server ...")
    print("Please wait until server has fully started")
    #先加載模型
    load_model()
    #再開啟服務
    app.run(port='5012')

?請求端? flask_predict.py

import requests
import argparse

# url和端口攜程自己的
flask_url = 'http://127.0.0.1:5012/predict'


def predict_result(image_path):
    #啥方法都行
    image = open(image_path, 'rb').read()
    payload = {'image': image}
    #request發(fā)給server.
    r = requests.post(flask_url, files=payload).json()

    # 成功的話在返回.
    if r['success']:
        # 輸出結果.
        for (i, result) in enumerate(r['predictions']):
            print('{}. {}: {:.4f}'.format(i + 1, result['label'],
                                          result['probability']))
    # 失敗了就打印.
    else:
        print('Request failed')


if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Classification demo')
    parser.add_argument('--file', default=r'D:\paogu\flask預測\flower_data\train\1\image_06734.jpg', type=str, help='test image file')

    args = parser.parse_args()
    predict_result(args.file)

到了這里,關于基于Flask測試深度學習模型預測的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 使用Flask簡單部署深度學習模型

    當客戶端想要獲取資源時,一般會通過瀏覽器發(fā)起HTTP請求。 此時,Web服務器會把來自客戶端的所有請求都交給Flask程序實例。 程序實例使用Werkzeug來做路由分發(fā)(URL請求和視圖函數(shù)之間的對應關系)。 根據(jù)每個URL請求,找到具體的視圖函數(shù)并進行調用。在Flask程序中,路由的

    2023年04月25日
    瀏覽(29)
  • 基于Flask+Bootstrap+機器學習的世界杯比賽預測系統(tǒng)

    基于Flask+Bootstrap+機器學習的世界杯比賽預測系統(tǒng)

    ???♂? 個人主頁:@艾派森的個人主頁 ???作者簡介:Python學習者 ?? 希望大家多多支持,我們一起進步!?? 如果文章對你有幫助的話, 歡迎評論 ??點贊???? 收藏 ??加關注+ 目錄 一、項目介紹 1.1項目簡介 1.2技術工具 1.3頁面概述? 二、項目步驟 2.1首頁模塊 2.2查看

    2024年02月09日
    瀏覽(29)
  • 基于Flask+Bootstrap+機器學習的南昌市租房價格預測系統(tǒng)

    基于Flask+Bootstrap+機器學習的南昌市租房價格預測系統(tǒng)

    ???♂? 個人主頁:@艾派森的個人主頁 ???作者簡介:Python學習者 ?? 希望大家多多支持,我們一起進步!?? 如果文章對你有幫助的話, 歡迎評論 ??點贊???? 收藏 ??加關注+ 目錄 一、項目介紹 1.1項目簡介 1.2技術工具 1.3頁面概述? 二、項目步驟 2.1登錄模塊 2.2注冊

    2024年02月02日
    瀏覽(21)
  • 深度學習模型部署——Flask框架輕量級部署+阿里云服務器

    深度學習模型部署——Flask框架輕量級部署+阿里云服務器

    ?因為參加一個比賽,需要把訓練好的深度學習模型部署到web端,第一次做,在網(wǎng)上也搜索了很多教程,基本上沒有適合自己的,只有一個b站up主講的還不錯 https://www.bilibili.com/video/BV1Qv41117SR/?spm_id_from=333.999.0.0vd_source=6ca6a313467efae52a28428a64104c10 https://www.bilibili.com/video/BV1Qv41117

    2024年02月07日
    瀏覽(95)
  • PyTorch深度學習實戰(zhàn) | 基于深度學習的電影票房預測研究

    PyTorch深度學習實戰(zhàn) | 基于深度學習的電影票房預測研究

    基于深度學習的映前票房預測模型(CrossDense網(wǎng)絡結構模型),該模型通過影片基本信息如:電影類型、影片制式、檔期和電影的主創(chuàng)陣容和IP特征等信息對上映影片的票房進行預測。 本篇采用451部電影作為訓練模型,最后再在194部影片上進行測試,模型的絕對精度為55%,相對精

    2023年04月24日
    瀏覽(25)
  • 多元分類預測 | Matlab基于深度置信網(wǎng)絡DBN的分類預測,多特征輸入模型,DBN分類預測
  • 【AI】自回歸 (AR) 模型使預測和深度學習變得簡單

    【AI】自回歸 (AR) 模型使預測和深度學習變得簡單

    自回歸 (AR) 模型是統(tǒng)計和時間序列模型,用于根據(jù)數(shù)據(jù)點的先前值進行分析和預測。這些模型廣泛應用于各個領域,包括經(jīng)濟、金融、信號處理和自然語言處理。 自回歸模型假設給定時間變量的值與其過去的值線性相關,這使得它們可用于建模和預測時間相關數(shù)據(jù)。 自回歸

    2024年02月05日
    瀏覽(29)
  • 基于Hadoop的網(wǎng)上購物行為大數(shù)據(jù)分析及預測系統(tǒng)【flask+echarts+機器學習】前后端交互

    基于Hadoop的網(wǎng)上購物行為大數(shù)據(jù)分析及預測系統(tǒng)【flask+echarts+機器學習】前后端交互

    有需要本項目或者部署的系統(tǒng)可以私信博主,提供遠程部署和講解 本研究基于淘寶用戶行為的開源數(shù)據(jù)展開大數(shù)據(jù)分析研究,通過Hadoop大數(shù)據(jù)分析平臺對阿里天池公開的開源數(shù)據(jù)集進行多維度的用戶行為分析,為電商銷售提供可行性決策。 首先我們將大數(shù)據(jù)集上傳到Hadoop中

    2024年01月22日
    瀏覽(90)
  • 【論文閱讀】基于深度學習的時序預測——Pyraformer

    【論文閱讀】基于深度學習的時序預測——Pyraformer

    系列文章鏈接 論文一:2020 Informer:長時序數(shù)據(jù)預測 論文二:2021 Autoformer:長序列數(shù)據(jù)預測 論文三:2022 FEDformer:長序列數(shù)據(jù)預測 論文四:2022 Non-Stationary Transformers:非平穩(wěn)性時序預測 論文五:2022 Pyraformer:基于金字塔圖結構的時序預測 論文六:2023 Crossformer:多變量時序預

    2024年02月13日
    瀏覽(45)
  • 【論文閱讀】基于深度學習的時序預測——FEDformer

    【論文閱讀】基于深度學習的時序預測——FEDformer

    系列文章鏈接 論文一:2020 Informer:長時序數(shù)據(jù)預測 論文二:2021 Autoformer:長序列數(shù)據(jù)預測 論文三:2022 FEDformer:長序列數(shù)據(jù)預測 論文四:2022 Non-Stationary Transformers:非平穩(wěn)性時序預測 論文五:2022 Pyraformer:基于金字塔圖結構的時序預測 論文六:2023 Crossformer:多變量時序預

    2024年02月13日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包