from pydantic import BaseModel, PositiveFloat, PositiveInt import os import pickle from datetime import datetime current_directory = os.getcwd() class ModelParams(): config = { 'user': 'root', 'password': 'ai-station-root', 'host': '124.16.151.196', 'database': 'ai-station', 'port':12222 } task_types_order = [ '回归预测任务', '时序预测任务', '计算机视觉任务', '强化学习任务', '自然语言处理任务', '算法标注工具' ] # 前缀:dmsb 地貌识别 # dmsb_count = True dmsb_name_classes = ["_background_", "Cropland", 'Forest', 'Grass', 'Shrub', 'Wetland', 'Water', 'Tundra', 'Impervious surface', 'Bareland', 'Ice/snow'] dmsb_colors = [ (0, 0, 0), # Background (黑色) (252, 250, 205), # Cropland (淡黄色) (0, 123, 79), # Forest (深绿色) (157, 221, 106), # Grass (浅绿色) (77, 208, 159), # Shrub (浅蓝绿色) (111, 208, 242), # Wetland (浅蓝色) (10, 78, 151), # Water (深蓝色) (92, 106, 55), # Tundra (土黄色) (155, 36, 22), # Impervious surface (红色) (205, 205, 205), # Bareland (灰色) (211, 242, 255) # Ice/snow (浅天蓝色) ] dmsb_type = { (0, 0, 0) : "背景", # Background (黑色) (252, 250, 205) : "农田", # Cropland (淡黄色) (0, 123, 79): "森林", # Forest (深绿色) (157, 221, 106): "草地", # Grass (浅绿色) (77, 208, 159): "灌木", # Shrub (浅蓝绿色) (111, 208, 242): "湿地", # Wetland (浅蓝色) (10, 78, 151): "水体", # Water (深蓝色) (92, 106, 55): "苔原", # Tundra (土黄色) (155, 36, 22): "建筑", # Impervious surface (红色) (205, 205, 205): "裸地", # Bareland (灰色) (211, 242, 255): "冰雪" # Ice/snow (浅天蓝色) } # 前缀 wdpv 屋顶光伏 wdpv_palette = [0, 0, 0, 255, 0, 0, 0, 255, 0] wdpv_colors = [(0, 0, 0), # 黑色 (255, 0, 0), # 红色 (0, 255, 0)] # 绿色 wd_type = { (0, 0, 0):"背景", (255, 0, 0): "屋顶", (0, 255, 0):'其他' } pv_type = { (0, 0, 0):"背景", (255, 0, 0): "光伏", (0, 255, 0):'其他' } wdpv_type = { (0, 0, 0):"背景", (255, 0, 0): "屋顶光伏", (0, 255, 0):'其他' } # 煤热解 meirejie_model_dict = { "adb_char" : "model/char_ADB.joblib", "dtr_char": "model/char_DTR.joblib", "en_char":"model/char_ElasticNet.joblib", "gp_char":"model/char_GaussianProcessRegressor.joblib", "kn_char":"model/char_KNeighborsRegressor.joblib", "lasso_char":"model/char_Lasso.joblib", "lr_char":"model/char_LinearRegression.joblib", "rfr_char":"model/char_RFR.joblib", "ridge_char":"model/char_Ridge.joblib", "svr_char":"model/char_SVR.joblib", "xgb_char":"model/char_XGB.joblib", "adb_gas" : "model/gas_ADB.joblib", "dtr_gas": "model/gas_DTR.joblib", "en_gas":"model/gas_ElasticNet.joblib", "gp_gas":"model/gas_GaussianProcessRegressor.joblib", "kn_gas":"model/gas_KNeighborsRegressor.joblib", "lasso_gas":"model/gas_Lasso.joblib", "lr_gas":"model/gas_LinearRegression.joblib", "rfr_gas":"model/gas_RFR.joblib", "ridge_gas":"model/gas_Ridge.joblib", "svr_gas":"model/gas_SVR.joblib", "xgb_gas":"model/gas_XGB.joblib", "adb_water" : "model/water_ADB.joblib", "dtr_water": "model/water_DTR.joblib", "en_water":"model/water_ElasticNet.joblib", "gp_water":"model/water_GaussianProcessRegressor.joblib", "kn_water":"model/water_KNeighborsRegressor.joblib", "lasso_water":"model/water_Lasso.joblib", "lr_water":"model/water_LinearRegression.joblib", "rfr_water":"model/water_RFR.joblib", "ridge_water":"model/water_Ridge.joblib", "svr_water":"model/water_SVR.joblib", "xgb_water":"model/water_XGB.joblib", "adb_tar" : "model/tar_ADB.joblib", "dtr_tar": "model/tar_DTR.joblib", "en_tar":"model/tar_ElasticNet.joblib", "gp_tar":"model/tar_GaussianProcessRegressor.joblib", "kn_tar":"model/tar_KNeighborsRegressor.joblib", "lasso_tar":"model/tar_Lasso.joblib", "lr_tar":"model/tar_LinearRegression.joblib", "rfr_tar":"model/tar_RFR.joblib", "ridge_tar":"model/tar_Ridge.joblib", "svr_tar":"model/tar_SVR.joblib", "xgb_tar":"model/tar_XGB.joblib" } index = ['mae', 'r2', 'result'] columns = [ 'XGBoost(极端梯度提升)', 'Linear Regression(线性回归)', 'Ridge Regression(岭回归)', 'Gaussian Process Regression(高斯过程回归)', 'ElasticNet Regression(弹性网回归)', 'K-Nearest Neighbors(K最近邻)', 'Support Vector Regression(支持向量回归)', 'Decision Tree Regression(决策树回归)', 'Random Forest Regression(随机森林回归)', 'AdaBoost Regression(AdaBoost回归)' ] meirejie_model_list_gas = ['xgb_gas','lr_gas','ridge_gas','gp_gas','en_gas','kn_gas','svr_gas','dtr_gas','rfr_gas','adb_gas'] meirejie_model_list_char = ['xgb_char','lr_char','ridge_char','gp_char','en_char','kn_char','svr_char','dtr_char','rfr_char','adb_char'] meirejie_model_list_water = ['xgb_water','lr_water','ridge_water','gp_water','en_water','kn_water','svr_water','dtr_water','rfr_water','adb_water'] meirejie_model_list_tar = ['xgb_tar','lr_tar','ridge_tar','gp_tar','en_tar','kn_tar','svr_tar','dtr_tar','rfr_tar','adb_tar'] meirejie_gas_mae = [1.93, 3.15, 3.15,1.51, 3.15, 2.15, 2.98, 2.4, 2.42, 3.0] meirejie_gas_r2 = [0.78, 0.68, 0.68,0.89,0.68, 0.75, 0.65, 0.74, 0.69, 0.62] meirejie_char_mae = [5.38, 7.0, 7.03, 2.91, 7.03, 3.94,13.5,12.55, 4.8,6.39] meirejie_char_r2 = [0.09, 0.01, 0.01, 0.8, 0.01, 0.7, 0.1,0.13, 0.16, 0.16] meirejie_water_mae = [1.74,4.33,4.35,1.47,0.83,4.18,2.51,1.38,1.42] meirejie_water_r2 = [0.87,0.47,0.46,0.89,0.45,0.98,0.23,0.67,0.89,0.95] meirejie_tar_mae = [0.93,2.09,2.09,1.31,2.09,1.28,1.51,1.24,0.96,1.49] meirejie_tar_r2 = [0.78,0.32,0.33,0.6,0.33,0.55,0.57,0.48,0.74,0.6] meirejie_test_data = { 'tar':'tar_data_test.csv', 'char':'char_data_test.csv', 'water':'water_data_test.csv', 'gas':'gas_data_test.csv', } # 煤基碳材料 meijitancailiao_model_dict = { "adb_ssa" : "model/SSA_ADB.joblib", "dtr_ssa": "model/SSA_DTR.joblib", "en_ssa":"model/SSA_ElasticNet.joblib", "gp_ssa":"model/SSA_GaussianProcessRegressor.joblib", "kn_ssa":"model/SSA_KNeighborsRegressor.joblib", "lasso_ssa":"model/SSA_Lasso.joblib", "lr_ssa":"model/SSA_LinearRegression.joblib", "rfr_ssa":"model/SSA_RFR.joblib", "ridge_ssa":"model/SSA_Ridge.joblib", "svr_ssa":"model/SSA_SVR.joblib", "xgb_ssa":"model/SSA_XGB.joblib", "adb_tpv" : "model/TPV_ADB.joblib", "dtr_tpv": "model/TPV_DTR.joblib", "en_tpv":"model/TPV_ElasticNet.joblib", "gp_tpv":"model/TPV_GaussianProcessRegressor.joblib", "gdbt_tpv":"model/TPV_GDBT.joblib", "kn_tpv":"model/TPV_KNeighborsRegressor.joblib", "lasso_tpv":"model/TPV_Lasso.joblib", "lr_tpv":"model/TPV_LinearRegression.joblib", "rfr_tpv":"model/TPV_RFR.joblib", "ridge_tpv":"model/TPV_Ridge.joblib", "svr_tpv":"model/TPV_SVR.joblib", "xgb_tpv":"model/TPV_XGB.joblib", "adb_meitan" : "model/meitan_ADB.joblib", "dtr_meitan": "model/meitan_DTR.joblib", "en_meitan":"model/meitan_ElasticNet.joblib", "gp_meitan":"model/meitan_GaussianProcessRegressor.joblib", "gdbt_meitan":"model/meitan_GDBT.joblib", "kn_meitan":"model/meitan_KNeighborsRegressor.joblib", "lasso_meitan":"model/meitan_Lasso.joblib", "lr_meitan":"model/meitan_LinearRegression.joblib", "rfr_meitan":"model/meitan_RFR.joblib", "ridge_meitan":"model/meitan_Ridge.joblib", "svr_meitan":"model/meitan_SVR.joblib", "xgb_meitan":"model/meitan_XGB.joblib", "adb_meiliqing" : "model/meiliqing_ADB.joblib", "dtr_meiliqing": "model/meiliqing_DTR.joblib", "en_meiliqing":"model/meiliqing_ElasticNet.joblib", "gp_meiliqing":"model/meiliqing_GaussianProcessRegressor.joblib", "gdbt_meiliqing":"model/meiliqing_GDBT.joblib", "kn_meiliqing":"model/meiliqing_KNeighborsRegressor.joblib", "lasso_meiliqing":"model/meiliqing_Lasso.joblib", "lr_meiliqing":"model/meiliqing_LinearRegression.joblib", "rfr_meiliqing":"model/meiliqing_RFR.joblib", "ridge_meiliqing":"model/meiliqing_Ridge.joblib", "svr_meiliqing":"model/meiliqing_SVR.joblib", "xgb_meiliqing":"model/meiliqing_XGB.joblib", } columns_ssa = [ 'XGBoost(极端梯度提升)', 'Linear Regression(线性回归)', 'Ridge Regression(岭回归)', 'Gaussian Process Regression(高斯过程回归)', 'ElasticNet Regression(弹性网回归)', 'K-Nearest Neighbors(最近邻居算法)', 'Support Vector Regression(支持向量回归)', 'Decision Tree Regression(决策树回归)', 'Random Forest Regression(随机森林回归)', 'AdaBoost Regression(自适应提升回归)' ] meijitancailiao_model_list_ssa = ['xgb_ssa','lr_ssa','ridge_ssa','gp_ssa','en_ssa','kn_ssa','svr_ssa','dtr_ssa','rfr_ssa','adb_ssa'] meijitancailiao_ssa_mae = [258, 407,408 ,282 ,411 ,389, 405, 288,193, 330] meijitancailiao_ssa_r2 = [0.92,0.82,0.82,0.89,0.81,0.82,0.87,0.88,0.95,0.88] columns_tpv = [ 'XGBoost(极端梯度提升)', 'Linear Regression(线性回归)', 'Ridge Regression(岭回归)', 'Gaussian Process Regression(高斯过程回归)', 'ElasticNet Regression(弹性网回归)', 'Gradient Boosting Regression(梯度提升回归)', 'Support Vector Regression(支持向量回归)', 'Decision Tree Regression(决策树回归)', 'Random Forest Regression(随机森林回归)', 'AdaBoost Regression(自适应提升回归)' ] meijitancailiao_model_list_tpv = ['xgb_tpv', 'lr_tpv', 'ridge_tpv', 'gp_tpv', 'en_tpv', 'gdbt_tpv', 'svr_tpv', 'dtr_tpv', 'rfr_tpv', 'adb_tpv'] meijitancailiao_tpv_mae = [0.2, 0.2, 0.2, 0.2, 0.2, 0.23, 0.23, 0.21, 0.16, 0.21] meijitancailiao_tpv_r2 = [0.81, 0.81, 0.81, 0.8, 0.82, 0.80, 0.78, 0.73, 0.85, 0.84] columns_meitan = [ 'XGBoost(极端梯度提升)', 'Linear Regression(线性回归)', 'Ridge Regression(岭回归)', 'Gaussian Process Regression(高斯过程回归)', 'ElasticNet Regression(弹性网回归)', 'Gradient Boosting Regression(梯度提升回归)', 'Support Vector Regression(支持向量回归)', 'Decision Tree Regression(决策树回归)', 'Random Forest Regression(随机森林回归)', 'AdaBoost Regression(自适应提升回归)' ] meijitancailiao_model_list_meitan = ['xgb_meitan', 'lr_meitan', 'ridge_meitan', 'gp_meitan', 'en_meitan', 'gdbt_meitan', 'svr_meitan', 'dtr_meitan', 'rfr_meitan', 'adb_meitan'] meijitancailiao_meitan_mae = [8.17, 37.61, 37.66, 13.41, 20.96, 8.03, 14.89, 19.48, 12.53, 15.6] meijitancailiao_meitan_r2 = [0.96, 0.19, 0.19, 0.91, 0.8, 0.96, 0.88, 0.86, 0.91, 0.91] columns_meiliqing = [ 'XGBoost(极端梯度提升)', 'Linear Regression(线性回归)', 'Ridge Regression(岭回归)', 'Gaussian Process Regression(高斯过程回归)', 'ElasticNet Regression(弹性网回归)', 'Gradient Boosting Regression(梯度提升回归)', 'Support Vector Regression(支持向量回归)', 'Decision Tree Regression(决策树回归)', 'Random Forest Regression(随机森林回归)', 'AdaBoost Regression(自适应提升回归)' ] meijitancailiao_model_list_meiliqing = ['xgb_meiliqing', 'lr_meiliqing', 'ridge_meiliqing', 'gp_meiliqing', 'en_meiliqing', 'gdbt_meiliqing', 'svr_meiliqing', 'dtr_meiliqing', 'rfr_meiliqing', 'adb_meiliqing'] meijitancailiao_meiliqing_mae = [8.38, 35.02, 35.1, 11.02, 13.58, 7.04, 13.13, 13.13, 11.25, 9.99] meijitancailiao_meiliqing_r2 = [0.95, 0.33, 0.33, 0.94, 0.91, 0.97, 0.88, 0.89, 0.92, 0.94] meijitancailiao_test_data = { 'ssa':'test_ssa.csv', 'tpv':'test_tpv.csv', 'meitan':'test_meitan.csv', 'meiliqing':'test_meiliqing.csv', } simu_model_dict = { "adb" : ["model/SSA_ADB.joblib","model/TPV_ADB.joblib"], "dtr": ["model/SSA_DTR.joblib","model/TPV_DTR.joblib"], "en":["model/SSA_ElasticNet.joblib","model/TPV_ElasticNet.joblib"], "gp":["model/SSA_GaussianProcessRegressor.joblib","model/TPV_GaussianProcessRegressor.joblib"], "kn":["model/SSA_KNeighborsRegressor.joblib","model/TPV_KNeighborsRegressor.joblib"], "lasso":["model/SSA_Lasso.joblib","model/TPV_Lasso.joblib"], "lr":["model/SSA_LinearRegression.joblib","model/TPV_LinearRegression.joblib"], "rfr":["model/SSA_RFR.joblib","model/TPV_RFR.joblib"], "ridge":["model/SSA_Ridge.joblib","model/TPV_Ridge.joblib"], "svr":["model/SSA_SVR.joblib","model/TPV_SVR.joblib"], "xgb":["model/SSA_XGB.joblib","model/TPV_XGB.joblib"], "gdbt":["model/SSA_GDBT.joblib","model/TPV_GDBT.joblib"] } ALLOWED_EXTENSIONS = {'.jpg', '.jpeg', '.png', '.tif'} MAX_FILE_SIZE = 100 * 1024 * 1024 # 100 MB MAX_FILE_SAM_SIZE = 10 * 1024 * 1024 DEFAULT_MODEL_PATH = r"/home/xiazj/ai-station-code/segment_anything_model/weights/vit_b.pth"