做一個簡易web使用Flask是最好的選擇,不僅上手快,使用也很便利。Django很強大也很好用,但一次就會創建一個項目的所需的文件,我覺得對於測試一個模型在web端有沒有效果沒必要用它。
flask依賴jinja和werkzeug,所以再稍微學一點jinja的語法即可。
關於TensorFlow如何保存/加載模型就不多說了(或者可以直接使用TensorFlow.js,但我用npm一直安裝出錯,遂放棄)。
首先安裝flask:`pip install flask`。可能需要注意flask的環境變量問題,如果遇到,則自己網上找找辦法吧。
然后在本地或者雲端選擇一個目錄下創建一個python文件,名字自己取一個(例如`web.py`)。
以我自己寫的為例吧,web.py文件內容大致如下:
from flask import *
app = Flask(__name__)
@app.route('/service', methods=['GET', 'POST'])
def service():
if request.method == 'POST':
input_x = string_floats(request.form['X'])
from model import service
g.output = service.predict(input_x) # 使用模型
return render_template("page.html", output=g.output)
return render_template("page.html")
page.html文件是這樣的:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Using Model</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<form method="post">
<label for="X">Input X:</label>
<!-- 之前這里說錯了,修改一下 -->
<!-- 這里后台request.form['X']通過id獲取到輸入框中的內容-->
<!-- 或者這樣也能獲取:request.form.get('name')通過屬性'name'來獲取input的內容 -->
<input name="X" id="X" style="width: 100%" required>
<input type="submit">
</form>
{% if output is defined %} <!-- jinja語法 -->
<p>Output:</p>
<span>{{ output }}</span>
{% endif %}
</body>
</html>
flask通過將py文件中定義的變量插入到html中的,jinja通過{{ }}使用,g是一個全局變量。
然后,命令行進入到web.py所在的目錄下。
windows下cmd中運行:
set FLASK_APP=web.py set FLASK_DEBUG=1 flask run
其他操作系統終端語法參考:http://flask.pocoo.org/docs/1.0/tutorial/factory/
效果:

參考:https://blog.csdn.net/luoyexuge/article/details/78227317
