機械学習4日目

5184 ワード

作成したモデルのバインド



  • このクリップにサーバを作成するには

  • サーバ


  • Webappでhtmlを作成する
    	<!DOCTYPE html>
    	<body>
    		<form action = "" method="post" enctype="multipart/form-data">
    			<input type = "file" name="uploadImage">
    			<input type = "submit" value="분석하기">
    		</form>
    	</body>
    

  • jspファイルを作成して結果を検証

  • jupyter

  • フラスコを設置して分析用サーバーを構築
    !pip install flask
    from flask import Flask, request, Response, redirect

  • フラスコオブジェクトの作成(検証用)
    app = Flask(__name__)
    
    @app.route('/', methods=['GET','POST'])
    def index() :
      return "hello world"
    app.run()
  • 運転画面

  • htmlにアドレスを入れる動作
  • 運転画面
  • で分析

  • 解析後にjspファイルに送信するように変更
    @app.route('/', methods=['GET','POST'])
    def index() :
       return return redirect("http://localhost:8081/upload/result.jsp")
  • 画像解析


  • htmlの変更


  • 以上のソースからmtplotlibをインストール
    !pip install flask
    !pip install matplotlib

  • importの変更
    from flask import Flask, request, Response, redirect
    import io 
    import numpy as np
    import matplotlib.pyplot as plt
    io:Python I/Oをサポートするライブラリ

  • 関数の変更
    @app.route('/predict', methods=['GET','POST'])
    def predict() :
        if request.method =='POST' :
            img = request.files['uploadImage']
            input_stream = io.NytesIO()
            img.save(input_stream)
            data = np.fromstring(input_stream.getvalue(),
                            dtype=np.uint8)
        
        return redirect("http://localhost:8081/upload/result.jsp")
  • input_stream = io.NytesIO()
    :バイト単位で読み出すチャネル
  • img.save(input_stream)
    :ファイルからデータを読み込む
  • data = np.fromstring(input_stream.getvalue(),
    dtype=np.uint8)
    :読み出したデータをnpに変更し、データ変数に
  • を格納する.