无法从 VSCode 中的 load_model 导入已保存的 keras 模型
Not able to import saved keras model from load_model in VSCode
我在 Colab 上训练了一个 keras 模型来根据图像预测皮肤病,当我尝试通过 VSCode 调用该模型时,出现以下错误。
File "e:/github/Skin_Disease_Assessment/app.py", line 7, in <module>
from keras.preprocessing import image
File "C:\Users\Dilrose\AppData\Local\Programs\Python\Python36\lib\site-packages\keras\__init__.py", line 25, in <module>
from keras import models
File "C:\Users\Dilrose\AppData\Local\Programs\Python\Python36\lib\site-packages\keras\models.py", line 19, in <module>
from keras import backend
File "C:\Users\Dilrose\AppData\Local\Programs\Python\Python36\lib\site-packages\keras\backend.py", line 301, in <module>
tf.__internal__.register_clear_session_function(clear_session)
AttributeError: module 'tensorflow.compat.v2.__internal__' has no attribute 'register_clear_session_function'
当我在 Colab 上提供图像时,我能够预测疾病,但由于我的项目是一个网络应用程序,我希望用户通过 html 输入图像并在网站。
我的Python代码
from flask import Flask, render_template, request, flash, redirect, session, url_for
from sqlite3 import *
from flask import request
from keras.models import load_model
from keras.preprocessing import image
import cv2
import requests
app = Flask(__name__)
app.secret_key = 'abc'
@app.route("/skinExam", methods=["GET", "POST"])
def skinExam():
if request.method == 'POST':
f = request.files['file']
path='static/data/'+ f.filename
f.save(path)
model = load_model('models/final_mobilenet.h5')
img1 = image.load_img(f, target_size=(224,224))
img = cv2.resize(img1, (224,224)) / 255.0
prediction = model.predict(img.reshape(1,224,224,3))
return render_template('skinExam.html')
我的HTML代码
<div class="col-md-6" style='margin-left:250px;'>
<form class="form-group" action="/skinExam" method='post' enctype="multipart/form-data">
<label>Upload Image</label>
<div class="input-group">
<span class="input-group-btn">
<span class="btn btn-default btn-file">
Browse… <input type="file" id="imgInp" name="file">
</span>
</span>
<input type="text" class="form-control" readonly>
</div>
<input type='submit' id='upload' class='btn btn-lg btn-success' value='Upload'>
</form>
</div>
有人可以帮我解决这个问题吗?
使用 tensorflow.keras
而不是 keras
,通常可以解决此问题
我在 Colab 上训练了一个 keras 模型来根据图像预测皮肤病,当我尝试通过 VSCode 调用该模型时,出现以下错误。
File "e:/github/Skin_Disease_Assessment/app.py", line 7, in <module>
from keras.preprocessing import image
File "C:\Users\Dilrose\AppData\Local\Programs\Python\Python36\lib\site-packages\keras\__init__.py", line 25, in <module>
from keras import models
File "C:\Users\Dilrose\AppData\Local\Programs\Python\Python36\lib\site-packages\keras\models.py", line 19, in <module>
from keras import backend
File "C:\Users\Dilrose\AppData\Local\Programs\Python\Python36\lib\site-packages\keras\backend.py", line 301, in <module>
tf.__internal__.register_clear_session_function(clear_session)
AttributeError: module 'tensorflow.compat.v2.__internal__' has no attribute 'register_clear_session_function'
当我在 Colab 上提供图像时,我能够预测疾病,但由于我的项目是一个网络应用程序,我希望用户通过 html 输入图像并在网站。
我的Python代码
from flask import Flask, render_template, request, flash, redirect, session, url_for
from sqlite3 import *
from flask import request
from keras.models import load_model
from keras.preprocessing import image
import cv2
import requests
app = Flask(__name__)
app.secret_key = 'abc'
@app.route("/skinExam", methods=["GET", "POST"])
def skinExam():
if request.method == 'POST':
f = request.files['file']
path='static/data/'+ f.filename
f.save(path)
model = load_model('models/final_mobilenet.h5')
img1 = image.load_img(f, target_size=(224,224))
img = cv2.resize(img1, (224,224)) / 255.0
prediction = model.predict(img.reshape(1,224,224,3))
return render_template('skinExam.html')
我的HTML代码
<div class="col-md-6" style='margin-left:250px;'>
<form class="form-group" action="/skinExam" method='post' enctype="multipart/form-data">
<label>Upload Image</label>
<div class="input-group">
<span class="input-group-btn">
<span class="btn btn-default btn-file">
Browse… <input type="file" id="imgInp" name="file">
</span>
</span>
<input type="text" class="form-control" readonly>
</div>
<input type='submit' id='upload' class='btn btn-lg btn-success' value='Upload'>
</form>
</div>
有人可以帮我解决这个问题吗?
使用 tensorflow.keras
而不是 keras
,通常可以解决此问题