#!/usr/bin/env python # -*- coding:utf-8 -*- # @FileName :nn_bp_pre.py # @Time :2025/2/12 10:39 # @Author :David # @Company: shenyang JY import json, copy import numpy as np from flask import Flask, request import logging, argparse, traceback from common.database_dml import * from common.processing_data_common import missing_features, str_to_list from data_processing.data_operation.data_handler import DataHandler from threading import Lock import time, yaml model_lock = Lock() from itertools import chain from common.logs import Log from tf_bp import BPHandler # logger = Log('tf_bp').logger() logger = Log('tf_bp').logger np.random.seed(42) # NumPy随机种子 # tf.set_random_seed(42) # TensorFlow随机种子 app = Flask('tf_bp_pre——service') with app.app_context(): with open('../model_koi/bp.yaml', 'r', encoding='utf-8') as f: arguments = yaml.safe_load(f) dh = DataHandler(logger, arguments) bp = BPHandler(logger) @app.route('/nn_bp_predict', methods=['POST']) def model_prediction_bp(): # 获取程序开始时间 start_time = time.time() result = {} success = 0 bp = BPHandler(logger) print("Program starts execution!") params_dict = request.values.to_dict() args = arguments.deepcopy() args.update(params_dict) try: print('args', args) logger.info(args) predict_data = get_data_from_mongo(args) feature_scaler, target_scaler = get_scaler_model_from_mongo(args) scaled_pre_x = dh.pre_data_handler(predict_data, feature_scaler, args) bp.get_model(args) # result = bp.predict(scaled_pre_x, args) result = list(chain.from_iterable(target_scaler.inverse_transform([bp.predict(scaled_pre_x).flatten()]))) insert_data_into_mongo(result, args) success = 1 except Exception as e: my_exception = traceback.format_exc() my_exception.replace("\n", "\t") result['msg'] = my_exception end_time = time.time() result['success'] = success result['args'] = args result['start_time'] = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(start_time)) result['end_time'] = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(end_time)) print("Program execution ends!") return result if __name__ == "__main__": run_code = 0