Я тренирую модель CNN от KERAS. Я хочу показать прогнозируемые результаты модели на веб-странице Flask. Проблема в том, что я хочу вернуть данные словаря из моей локальной программы на Python и показать данные на веб-странице Flask, но я не могу правильно проанализировать JSON и показать элементы по линии. Потому что у меня мало знаний в JS :(
Я хочу, чтобы веб-страница отображалась следующим образом
笔迹最相似的5个书写人:
top5_index[0] top5_prob[0]
top5_index[1] top5_prob[1]
top5_index[2] top5_prob[2]
top5_index[3]:top5_prob[3]
top5_index[4] top5_prob[4]
однако веб-страница ничего не показывает ... (я думаю, код детали JS пошёл не так)
Есть мои коды, и они не работают.
питон
@app.route('/predict', methods=['GET', 'POST'])
def upload():
if request.method == 'POST':
# Get the file from post request
f = request.files['file']
# Save the file to ./uploads
basepath = os.path.dirname(__file__)
file_path = os.path.join(
basepath, 'uploads', secure_filename(f.filename))
f.save(file_path)
# Make prediction
top5_index, top5_prob = model_predict(file_path, model)
wr_dict = {top5_index[0]:top5_prob[0], top5_index[1]:top5_prob[1],
top5_index[2]:top5_prob[2], top5_index[3]:top5_prob[3],
top5_index[4]:top5_prob[4]}
return json.dumps(wr_dict)
return None
JS
// Predict
$('#btn-predict').click(function () {
var form_data = new FormData($('#upload-file')[0]);
$(this).hide();
$('.loader').show();
// Make prediction by calling api /predict/
$.ajax({
type: 'POST',
url: '/predict',
data: JSON.parse(form_data),
contentType: 'application/json;charset=utf-8',
dataType: 'json',
cache: false,
processData: false,
async: true,
success: function (data) {
// Get and display the result
$('.loader').hide();
$('#result').fadeIn(600);
$('#result').text(' 笔迹最相似的5个书写人: ');
$('#value1').text(data[0]);
$('#value2').text(data[1]);
$('#value3').text(data[2]);
$('#value4').text(data[3]);
$('#value5').text(data[4]);
console.log('Success!');
},
});
});
Как изменить код детали JS для отображения словарных данных в правильном формате.
Любая помощь будет оценена.