David vor 3 Monaten
Ursprung
Commit
634180693a

+ 2 - 2
Dockerfile2

@@ -1,5 +1,5 @@
 # 基础镜像
-FROM centos:syjyV1.0
+FROM centos:syjyV1.1
 
 # 设置工作目录
 WORKDIR /home/app
@@ -8,7 +8,7 @@ WORKDIR /home/app
 COPY ./app/ .
 
 # 安装Python依赖
-RUN pip3 install --no-cache-dir -r requirements.txt
+RUN pip3 install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
 
 # 启动命令
 CMD ["sh", "-c", "mongod --fork --logpath /var/log/mongodb.log"]

+ 1 - 1
app/common/data_cleaning.py

@@ -7,7 +7,7 @@
 import numpy as np
 np.random.seed(42)
 
-def cleaning(df, name, logger, cols=None, dup=True, col_time='dateTime'):
+def cleaning(df, name, logger, cols=None, dup=True, col_time='Datetime'):
     logger.info("开始清洗:{}……".format(name))
     data = df.copy()
     data = data_column_cleaning(data, logger)

+ 18 - 16
app/common/data_handler.py

@@ -5,6 +5,7 @@
 # @Author    :David
 # @Company: shenyang JY
 import argparse, numbers, joblib
+import numpy as np
 import pandas as pd
 from io import BytesIO
 from bson.decimal128 import Decimal128
@@ -39,18 +40,18 @@ class DataHandler(object):
 
         return train_x, valid_x, train_y, valid_y
 
-    def get_predict_data(self, dfs, features):
+    def get_predict_data(self, dfs):
         test_x = []
         for i, df in enumerate(dfs, start=1):
             if len(df) < self.opt.Model["time_step"]:
                 self.logger.info("特征处理-预测数据-不满足time_step")
                 continue
-            datax = self.get_predict_features(df, features)
-            test_x.extend(datax)
-        test_x = np.array(test_x)
+            datax = self.get_predict_features(df)
+            test_x.append(datax)
+        test_x = np.concatenate(test_x, axis=0)
         return test_x
 
-    def get_predict_features(self, norm_data, features):
+    def get_predict_features(self, norm_data):
         """
         均分数据,获取预测数据集
         """
@@ -59,7 +60,7 @@ class DataHandler(object):
         time_step_loc = time_step - 1
         iters = int(len(feature_data)) // self.opt.Model['time_step']
         end = int(len(feature_data)) % self.opt.Model['time_step']
-        features_x = np.array([feature_data.loc[i*time_step:i*time_step + time_step_loc, features].reset_index(drop=True) for i in range(iters)])
+        features_x = np.array([feature_data.loc[i*time_step:i*time_step + time_step_loc, self.opt.features].reset_index(drop=True) for i in range(iters)])
         if end > 0:
             df = feature_data.tail(end)
             df_repeated = pd.concat([df] + [pd.DataFrame([df.iloc[0]]* (time_step-end))]).reset_index(drop=True)
@@ -132,7 +133,7 @@ class DataHandler(object):
     def data_fill(self, dfs, col_time, test=False):
         dfs_fill, inserts = [], 0
         for i, df in enumerate(dfs):
-            df = rm_duplicated(df, self.logger, col_time=col_time)
+            df = rm_duplicated(df, self.logger)
             df1 = df.set_index(col_time, inplace=False)
             dff = df1.resample('15T').interpolate(method='linear')  # 采用线性补值,其他补值方法需要进一步对比
             dff.reset_index(inplace=True)
@@ -174,26 +175,27 @@ class DataHandler(object):
             y_valid
         """
         col_time, features, target = self.opt.col_time, self.opt.features, self.opt.target
-        features = self.opt.features_owner if self.opt.switch_nwp_owner else self.opt.features
         # 清洗限电记录
         if 'is_limit' in data.columns:
             data = data[data['is_limit'] == False]
         # 筛选特征,数值化,排序
         train_data = data[[col_time] + features + [target]]
-        train_data = train_data.map(lambda x: float(x.to_decimal()) if isinstance(x, Decimal128) else float(x) if isinstance(x, numbers.Number) else x)
+        train_data = train_data.applymap(lambda x: float(x.to_decimal()) if isinstance(x, Decimal128) else float(x) if isinstance(x, numbers.Number) else x)
         train_data = train_data.sort_values(by=col_time)
+        # 清洗特征平均缺失率大于20%的天
+        # train_data = missing_features(train_data, features, col_time)
         # 对清洗完限电的数据进行特征预处理:
         # 1.空值异常值清洗
         train_data_cleaned = cleaning(train_data, '训练集', self.logger, features + [target], col_time=col_time)
+        self.opt.features = [x for x in train_data_cleaned.columns.tolist() if x not in [target, col_time] and x in features]
         # 2. 标准化
         # 创建特征和目标的标准化器
         train_scaler = MinMaxScaler(feature_range=(0, 1))
         target_scaler = MinMaxScaler(feature_range=(0, 1))
         # 标准化特征和目标
-        self.opt.features = list(set(train_data_cleaned.columns.tolist()) & set(features))
         scaled_train_data = train_scaler.fit_transform(train_data_cleaned[self.opt.features])
         scaled_target = target_scaler.fit_transform(train_data_cleaned[[target]])
-        scaled_cap = target_scaler.transform(np.array([[float(self.opt.cap)]]))[0, 0]
+        scaled_cap = target_scaler.transform(np.array([[float(self.opt.cap)]]))[0,0]
         train_data_cleaned[self.opt.features] = scaled_train_data
         train_data_cleaned[[target]] = scaled_target
         # 3.缺值补值
@@ -208,7 +210,7 @@ class DataHandler(object):
 
         if bp_data:
             train_data = pd.concat(train_datas, axis=0)
-            train_x, valid_x, train_y, valid_y = self.train_valid_split(train_data[features].values, train_data[target].values, valid_rate=self.opt.Model["valid_data_rate"], shuffle=self.opt.Model['shuffle_train_data'])
+            train_x, valid_x, train_y, valid_y = self.train_valid_split(train_data[self.opt.features].values, train_data[target].values, valid_rate=self.opt.Model["valid_data_rate"], shuffle=self.opt.Model['shuffle_train_data'])
             train_x, valid_x, train_y, valid_y =  np.array(train_x), np.array(valid_x), np.array(train_y), np.array(valid_y)
         else:
             train_x, valid_x, train_y, valid_y = self.get_train_data(train_datas, col_time, target)
@@ -226,8 +228,9 @@ class DataHandler(object):
         # 清洗限电记录
         if 'is_limit' in data.columns:
             data = data[data['is_limit'] == False]
-        col_time = self.opt.col_time
-        features = self.opt.features_owner if self.opt.switch_nwp_owner else self.opt.features
+        # features, time_steps, col_time, model_name, col_reserve = str_to_list(args['features']), int(
+        #     args['time_steps']), args['col_time'], args['model_name'], str_to_list(args['col_reserve'])
+        col_time, features = self.opt.col_time, self.opt.features
         data = data.map(lambda x: float(x.to_decimal()) if isinstance(x, Decimal128) else float(x) if isinstance(x, numbers.Number) else x)
         data = data.sort_values(by=col_time).reset_index(drop=True, inplace=False)
         if not set(features).issubset(set(data.columns.tolist())):
@@ -239,10 +242,9 @@ class DataHandler(object):
         if bp_data:
             pre_x = np.array(pre_data)
         else:
-            pre_x = self.get_predict_data([pre_data], features)
+            pre_x = self.get_predict_data([pre_data])
         return pre_x, data
 
-
 def write_number_to_file(file_path, line_number, number, mode='overwrite'):
     """
     向指定文件写入数字(支持清空重写和覆盖两种模式)

+ 173 - 0
app/logs/2025-03-28/south-forecast.2025-03-28.0.log

@@ -0,0 +1,173 @@
+2025-03-28 09:40:35,370 - module_wrapper.py - WARNING - From E:\compete\app\model\losses.py:10: The name tf.set_random_seed is deprecated. Please use tf.compat.v1.set_random_seed instead.
+ - _tfmw_add_deprecation_warning
+2025-03-28 09:40:35,651 - tf_fmi_train.py - INFO - Program starts execution! - model_training
+2025-03-28 09:40:35,706 - data_cleaning.py - INFO - 开始清洗:训练集…… - cleaning
+2025-03-28 09:40:35,716 - data_cleaning.py - INFO - 列清洗:清洗的列有:{'HubSpeed', 'HubDireciton'} - data_column_cleaning
+2025-03-28 09:41:23,101 - module_wrapper.py - WARNING - From E:\compete\app\model\losses.py:10: The name tf.set_random_seed is deprecated. Please use tf.compat.v1.set_random_seed instead.
+ - _tfmw_add_deprecation_warning
+2025-03-28 09:41:23,531 - tf_fmi_train.py - INFO - Program starts execution! - model_training
+2025-03-28 09:41:49,477 - data_cleaning.py - INFO - 开始清洗:训练集…… - cleaning
+2025-03-28 09:41:50,284 - data_cleaning.py - INFO - 列清洗:清洗的列有:{'HubDireciton', 'HubSpeed'} - data_column_cleaning
+2025-03-28 09:42:35,806 - module_wrapper.py - WARNING - From E:\compete\app\model\losses.py:10: The name tf.set_random_seed is deprecated. Please use tf.compat.v1.set_random_seed instead.
+ - _tfmw_add_deprecation_warning
+2025-03-28 09:42:40,835 - tf_fmi_train.py - INFO - Program starts execution! - model_training
+2025-03-28 09:42:47,459 - data_cleaning.py - INFO - 开始清洗:训练集…… - cleaning
+2025-03-28 09:42:51,045 - data_cleaning.py - INFO - 列清洗:清洗的列有:{'HubDireciton', 'HubSpeed'} - data_column_cleaning
+2025-03-28 09:45:13,770 - module_wrapper.py - WARNING - From E:\compete\app\model\losses.py:10: The name tf.set_random_seed is deprecated. Please use tf.compat.v1.set_random_seed instead.
+ - _tfmw_add_deprecation_warning
+2025-03-28 09:45:32,937 - tf_fmi_train.py - INFO - Program starts execution! - model_training
+2025-03-28 09:45:59,675 - data_cleaning.py - INFO - 开始清洗:训练集…… - cleaning
+2025-03-28 09:47:20,649 - module_wrapper.py - WARNING - From E:\compete\app\model\losses.py:10: The name tf.set_random_seed is deprecated. Please use tf.compat.v1.set_random_seed instead.
+ - _tfmw_add_deprecation_warning
+2025-03-28 09:47:24,365 - tf_fmi_train.py - INFO - Program starts execution! - model_training
+2025-03-28 09:47:32,614 - data_cleaning.py - INFO - 开始清洗:训练集…… - cleaning
+2025-03-28 09:47:33,522 - data_cleaning.py - INFO - 列清洗:清洗的列有:{'HubDireciton', 'HubSpeed'} - data_column_cleaning
+2025-03-28 09:47:35,902 - data_cleaning.py - INFO - 行清洗:清洗的行数有:881,缺失的列有: - key_field_row_cleaning
+2025-03-28 09:47:46,273 - data_handler.py - INFO - 2022-05-05 23:45:00 ~ 2022-05-09 00:00:00 - missing_time_splite
+2025-03-28 09:47:46,273 - data_handler.py - INFO - 缺失点数:288.0 - missing_time_splite
+2025-03-28 09:47:46,306 - data_handler.py - INFO - 2022-06-25 07:45:00 ~ 2022-06-25 08:15:00 - missing_time_splite
+2025-03-28 09:47:46,307 - data_handler.py - INFO - 缺失点数:1.0 - missing_time_splite
+2025-03-28 09:47:46,307 - data_handler.py - INFO - 需要补值的点数:1.0 - missing_time_splite
+2025-03-28 09:47:46,308 - data_handler.py - INFO - 2022-06-27 06:45:00 ~ 2022-06-27 07:15:00 - missing_time_splite
+2025-03-28 09:47:46,308 - data_handler.py - INFO - 缺失点数:1.0 - missing_time_splite
+2025-03-28 09:47:46,308 - data_handler.py - INFO - 需要补值的点数:1.0 - missing_time_splite
+2025-03-28 09:47:46,312 - data_handler.py - INFO - 2022-07-01 06:30:00 ~ 2022-07-01 23:45:00 - missing_time_splite
+2025-03-28 09:47:46,312 - data_handler.py - INFO - 缺失点数:68.0 - missing_time_splite
+2025-03-28 09:47:46,317 - data_handler.py - INFO - 2022-07-08 06:15:00 ~ 2022-07-08 23:45:00 - missing_time_splite
+2025-03-28 09:47:46,318 - data_handler.py - INFO - 缺失点数:69.0 - missing_time_splite
+2025-03-28 09:47:46,319 - data_handler.py - INFO - 2022-07-09 06:15:00 ~ 2022-07-09 23:45:00 - missing_time_splite
+2025-03-28 09:47:46,320 - data_handler.py - INFO - 缺失点数:69.0 - missing_time_splite
+2025-03-28 09:47:46,321 - data_handler.py - INFO - 2022-07-10 06:15:00 ~ 2022-07-10 23:45:00 - missing_time_splite
+2025-03-28 09:47:46,321 - data_handler.py - INFO - 缺失点数:69.0 - missing_time_splite
+2025-03-28 09:47:46,322 - data_handler.py - INFO - 2022-07-11 06:00:00 ~ 2022-07-11 23:45:00 - missing_time_splite
+2025-03-28 09:47:46,322 - data_handler.py - INFO - 缺失点数:70.0 - missing_time_splite
+2025-03-28 09:47:46,323 - data_handler.py - INFO - 2022-07-12 06:00:00 ~ 2022-07-12 23:45:00 - missing_time_splite
+2025-03-28 09:47:46,324 - data_handler.py - INFO - 缺失点数:70.0 - missing_time_splite
+2025-03-28 09:47:46,325 - data_handler.py - INFO - 2022-07-13 06:00:00 ~ 2022-07-13 23:45:00 - missing_time_splite
+2025-03-28 09:47:46,325 - data_handler.py - INFO - 缺失点数:70.0 - missing_time_splite
+2025-03-28 09:47:46,326 - data_handler.py - INFO - 2022-07-14 23:00:00 ~ 2022-07-14 23:45:00 - missing_time_splite
+2025-03-28 09:47:46,326 - data_handler.py - INFO - 缺失点数:2.0 - missing_time_splite
+2025-03-28 09:47:46,326 - data_handler.py - INFO - 需要补值的点数:2.0 - missing_time_splite
+2025-03-28 09:47:46,340 - data_handler.py - INFO - 2022-08-01 20:00:00 ~ 2022-08-01 23:45:00 - missing_time_splite
+2025-03-28 09:47:46,340 - data_handler.py - INFO - 缺失点数:14.0 - missing_time_splite
+2025-03-28 09:47:46,342 - data_handler.py - INFO - 2022-08-02 21:00:00 ~ 2022-08-02 23:45:00 - missing_time_splite
+2025-03-28 09:47:46,342 - data_handler.py - INFO - 缺失点数:10.0 - missing_time_splite
+2025-03-28 09:47:46,344 - data_handler.py - INFO - 2022-08-04 00:00:00 ~ 2022-08-04 23:15:00 - missing_time_splite
+2025-03-28 09:47:46,344 - data_handler.py - INFO - 缺失点数:92.0 - missing_time_splite
+2025-03-28 09:47:46,345 - data_handler.py - INFO - 2022-08-05 00:00:00 ~ 2022-08-05 23:15:00 - missing_time_splite
+2025-03-28 09:47:46,345 - data_handler.py - INFO - 缺失点数:92.0 - missing_time_splite
+2025-03-28 09:47:46,346 - data_handler.py - INFO - 2022-08-06 00:00:00 ~ 2022-08-06 23:15:00 - missing_time_splite
+2025-03-28 09:47:46,346 - data_handler.py - INFO - 缺失点数:92.0 - missing_time_splite
+2025-03-28 09:47:46,347 - data_handler.py - INFO - 2022-08-07 00:00:00 ~ 2022-08-07 23:15:00 - missing_time_splite
+2025-03-28 09:47:46,347 - data_handler.py - INFO - 缺失点数:92.0 - missing_time_splite
+2025-03-28 09:47:46,348 - data_handler.py - INFO - 数据总数:8207, 时序缺失的间隔:3, 其中,较长的时间间隔:14 - missing_time_splite
+2025-03-28 09:47:46,348 - data_handler.py - INFO - 需要补值的总点数:4.0 - missing_time_splite
+2025-03-28 09:47:46,350 - data_handler.py - INFO - 再次测算,需要插值的总点数为:4.0 - fill_train_data
+2025-03-28 09:47:47,803 - data_handler.py - INFO - 2022-05-02 08:00:00 ~ 2022-05-05 23:45:00 有 352 个点, 填补 0 个点. - data_fill
+2025-03-28 09:47:47,810 - data_handler.py - INFO - 2022-05-09 00:00:00 ~ 2022-07-01 06:30:00 有 5115 个点, 填补 2 个点. - data_fill
+2025-03-28 09:47:47,815 - data_handler.py - INFO - 2022-07-01 23:45:00 ~ 2022-07-08 06:15:00 有 603 个点, 填补 0 个点. - data_fill
+2025-03-28 09:47:47,819 - data_handler.py - INFO - 2022-07-08 23:45:00 ~ 2022-07-09 06:15:00 有 27 个点, 填补 0 个点. - data_fill
+2025-03-28 09:47:47,824 - data_handler.py - INFO - 2022-07-09 23:45:00 ~ 2022-07-10 06:15:00 有 27 个点, 填补 0 个点. - data_fill
+2025-03-28 09:47:47,828 - data_handler.py - INFO - 2022-07-10 23:45:00 ~ 2022-07-11 06:00:00 有 26 个点, 填补 0 个点. - data_fill
+2025-03-28 09:47:47,833 - data_handler.py - INFO - 2022-07-11 23:45:00 ~ 2022-07-12 06:00:00 有 26 个点, 填补 0 个点. - data_fill
+2025-03-28 09:47:47,837 - data_handler.py - INFO - 2022-07-12 23:45:00 ~ 2022-07-13 06:00:00 有 26 个点, 填补 0 个点. - data_fill
+2025-03-28 09:47:47,843 - data_handler.py - INFO - 2022-07-13 23:45:00 ~ 2022-08-01 20:00:00 有 1810 个点, 填补 2 个点. - data_fill
+2025-03-28 09:47:47,847 - data_handler.py - INFO - 2022-08-01 23:45:00 ~ 2022-08-02 21:00:00 有 86 个点, 填补 0 个点. - data_fill
+2025-03-28 09:47:47,852 - data_handler.py - INFO - 2022-08-02 23:45:00 ~ 2022-08-04 00:00:00 有 98 个点, 填补 0 个点. - data_fill
+2025-03-28 09:47:47,856 - data_handler.py - INFO - 2022-08-04 23:15:00 ~ 2022-08-05 00:00:00 有 4 个点, 填补 0 个点. - data_fill
+2025-03-28 09:47:47,860 - data_handler.py - INFO - 2022-08-05 23:15:00 ~ 2022-08-06 00:00:00 有 4 个点, 填补 0 个点. - data_fill
+2025-03-28 09:47:47,865 - data_handler.py - INFO - 2022-08-06 23:15:00 ~ 2022-08-07 00:00:00 有 4 个点, 填补 0 个点. - data_fill
+2025-03-28 09:47:47,869 - data_handler.py - INFO - 2022-08-07 23:15:00 ~ 2022-08-07 23:45:00 有 3 个点, 填补 0 个点. - data_fill
+2025-03-28 09:47:47,870 - data_handler.py - INFO - 训练集分成了15段,实际一共补值4点 - data_fill
+2025-03-28 09:47:58,110 - data_handler.py - INFO - 特征处理-训练数据-不满足time_step - get_train_data
+2025-03-28 09:47:58,110 - data_handler.py - INFO - 特征处理-训练数据-无法进行最小分割 - get_train_data
+2025-03-28 09:47:58,110 - data_handler.py - INFO - 特征处理-训练数据-不满足time_step - get_train_data
+2025-03-28 09:47:58,110 - data_handler.py - INFO - 特征处理-训练数据-无法进行最小分割 - get_train_data
+2025-03-28 09:47:58,110 - data_handler.py - INFO - 特征处理-训练数据-不满足time_step - get_train_data
+2025-03-28 09:47:58,110 - data_handler.py - INFO - 特征处理-训练数据-无法进行最小分割 - get_train_data
+2025-03-28 09:47:58,110 - data_handler.py - INFO - 特征处理-训练数据-不满足time_step - get_train_data
+2025-03-28 09:47:58,110 - data_handler.py - INFO - 特征处理-训练数据-无法进行最小分割 - get_train_data
+2025-03-28 09:48:03,145 - dbmg.py - INFO - ❌ 系统异常: Authentication failed., full error: {'ok': 0.0, 'errmsg': 'Authentication failed.', 'code': 18, 'codeName': 'AuthenticationFailed'} - get_keras_model_from_mongo
+2025-03-28 09:48:03,145 - tf_fmi.py - INFO - 加强训练加载模型权重失败:("Authentication failed., full error: {'ok': 0.0, 'errmsg': 'Authentication failed.', 'code': 18, 'codeName': 'AuthenticationFailed'}",) - train_init
+2025-03-28 09:48:42,795 - module_wrapper.py - WARNING - From E:\compete\app\model\losses.py:10: The name tf.set_random_seed is deprecated. Please use tf.compat.v1.set_random_seed instead.
+ - _tfmw_add_deprecation_warning
+2025-03-28 09:48:42,894 - tf_fmi_train.py - INFO - Program starts execution! - model_training
+2025-03-28 09:48:42,947 - data_cleaning.py - INFO - 开始清洗:训练集…… - cleaning
+2025-03-28 09:48:42,956 - data_cleaning.py - INFO - 列清洗:清洗的列有:{'HubSpeed', 'HubDireciton'} - data_column_cleaning
+2025-03-28 09:48:42,970 - data_cleaning.py - INFO - 行清洗:清洗的行数有:881,缺失的列有: - key_field_row_cleaning
+2025-03-28 09:48:42,981 - data_handler.py - INFO - 2022-05-05 23:45:00 ~ 2022-05-09 00:00:00 - missing_time_splite
+2025-03-28 09:48:42,981 - data_handler.py - INFO - 缺失点数:288.0 - missing_time_splite
+2025-03-28 09:48:43,016 - data_handler.py - INFO - 2022-06-25 07:45:00 ~ 2022-06-25 08:15:00 - missing_time_splite
+2025-03-28 09:48:43,016 - data_handler.py - INFO - 缺失点数:1.0 - missing_time_splite
+2025-03-28 09:48:43,016 - data_handler.py - INFO - 需要补值的点数:1.0 - missing_time_splite
+2025-03-28 09:48:43,017 - data_handler.py - INFO - 2022-06-27 06:45:00 ~ 2022-06-27 07:15:00 - missing_time_splite
+2025-03-28 09:48:43,017 - data_handler.py - INFO - 缺失点数:1.0 - missing_time_splite
+2025-03-28 09:48:43,017 - data_handler.py - INFO - 需要补值的点数:1.0 - missing_time_splite
+2025-03-28 09:48:43,022 - data_handler.py - INFO - 2022-07-01 06:30:00 ~ 2022-07-01 23:45:00 - missing_time_splite
+2025-03-28 09:48:43,022 - data_handler.py - INFO - 缺失点数:68.0 - missing_time_splite
+2025-03-28 09:48:43,027 - data_handler.py - INFO - 2022-07-08 06:15:00 ~ 2022-07-08 23:45:00 - missing_time_splite
+2025-03-28 09:48:43,027 - data_handler.py - INFO - 缺失点数:69.0 - missing_time_splite
+2025-03-28 09:48:43,028 - data_handler.py - INFO - 2022-07-09 06:15:00 ~ 2022-07-09 23:45:00 - missing_time_splite
+2025-03-28 09:48:43,028 - data_handler.py - INFO - 缺失点数:69.0 - missing_time_splite
+2025-03-28 09:48:43,029 - data_handler.py - INFO - 2022-07-10 06:15:00 ~ 2022-07-10 23:45:00 - missing_time_splite
+2025-03-28 09:48:43,030 - data_handler.py - INFO - 缺失点数:69.0 - missing_time_splite
+2025-03-28 09:48:43,030 - data_handler.py - INFO - 2022-07-11 06:00:00 ~ 2022-07-11 23:45:00 - missing_time_splite
+2025-03-28 09:48:43,031 - data_handler.py - INFO - 缺失点数:70.0 - missing_time_splite
+2025-03-28 09:48:43,032 - data_handler.py - INFO - 2022-07-12 06:00:00 ~ 2022-07-12 23:45:00 - missing_time_splite
+2025-03-28 09:48:43,032 - data_handler.py - INFO - 缺失点数:70.0 - missing_time_splite
+2025-03-28 09:48:43,033 - data_handler.py - INFO - 2022-07-13 06:00:00 ~ 2022-07-13 23:45:00 - missing_time_splite
+2025-03-28 09:48:43,033 - data_handler.py - INFO - 缺失点数:70.0 - missing_time_splite
+2025-03-28 09:48:43,033 - data_handler.py - INFO - 2022-07-14 23:00:00 ~ 2022-07-14 23:45:00 - missing_time_splite
+2025-03-28 09:48:43,034 - data_handler.py - INFO - 缺失点数:2.0 - missing_time_splite
+2025-03-28 09:48:43,034 - data_handler.py - INFO - 需要补值的点数:2.0 - missing_time_splite
+2025-03-28 09:48:43,047 - data_handler.py - INFO - 2022-08-01 20:00:00 ~ 2022-08-01 23:45:00 - missing_time_splite
+2025-03-28 09:48:43,047 - data_handler.py - INFO - 缺失点数:14.0 - missing_time_splite
+2025-03-28 09:48:43,049 - data_handler.py - INFO - 2022-08-02 21:00:00 ~ 2022-08-02 23:45:00 - missing_time_splite
+2025-03-28 09:48:43,049 - data_handler.py - INFO - 缺失点数:10.0 - missing_time_splite
+2025-03-28 09:48:43,050 - data_handler.py - INFO - 2022-08-04 00:00:00 ~ 2022-08-04 23:15:00 - missing_time_splite
+2025-03-28 09:48:43,051 - data_handler.py - INFO - 缺失点数:92.0 - missing_time_splite
+2025-03-28 09:48:43,052 - data_handler.py - INFO - 2022-08-05 00:00:00 ~ 2022-08-05 23:15:00 - missing_time_splite
+2025-03-28 09:48:43,052 - data_handler.py - INFO - 缺失点数:92.0 - missing_time_splite
+2025-03-28 09:48:43,053 - data_handler.py - INFO - 2022-08-06 00:00:00 ~ 2022-08-06 23:15:00 - missing_time_splite
+2025-03-28 09:48:43,053 - data_handler.py - INFO - 缺失点数:92.0 - missing_time_splite
+2025-03-28 09:48:43,054 - data_handler.py - INFO - 2022-08-07 00:00:00 ~ 2022-08-07 23:15:00 - missing_time_splite
+2025-03-28 09:48:43,054 - data_handler.py - INFO - 缺失点数:92.0 - missing_time_splite
+2025-03-28 09:48:43,055 - data_handler.py - INFO - 数据总数:8207, 时序缺失的间隔:3, 其中,较长的时间间隔:14 - missing_time_splite
+2025-03-28 09:48:43,055 - data_handler.py - INFO - 需要补值的总点数:4.0 - missing_time_splite
+2025-03-28 09:48:43,056 - data_handler.py - INFO - 再次测算,需要插值的总点数为:4.0 - fill_train_data
+2025-03-28 09:48:43,057 - data_handler.py - INFO - 2022-05-02 08:00:00 ~ 2022-05-05 23:45:00 有 352 个点, 填补 0 个点. - data_fill
+2025-03-28 09:48:43,061 - data_handler.py - INFO - 2022-05-09 00:00:00 ~ 2022-07-01 06:30:00 有 5115 个点, 填补 2 个点. - data_fill
+2025-03-28 09:48:43,062 - data_handler.py - INFO - 2022-07-01 23:45:00 ~ 2022-07-08 06:15:00 有 603 个点, 填补 0 个点. - data_fill
+2025-03-28 09:48:43,063 - data_handler.py - INFO - 2022-07-08 23:45:00 ~ 2022-07-09 06:15:00 有 27 个点, 填补 0 个点. - data_fill
+2025-03-28 09:48:43,064 - data_handler.py - INFO - 2022-07-09 23:45:00 ~ 2022-07-10 06:15:00 有 27 个点, 填补 0 个点. - data_fill
+2025-03-28 09:48:43,065 - data_handler.py - INFO - 2022-07-10 23:45:00 ~ 2022-07-11 06:00:00 有 26 个点, 填补 0 个点. - data_fill
+2025-03-28 09:48:43,067 - data_handler.py - INFO - 2022-07-11 23:45:00 ~ 2022-07-12 06:00:00 有 26 个点, 填补 0 个点. - data_fill
+2025-03-28 09:48:43,067 - data_handler.py - INFO - 2022-07-12 23:45:00 ~ 2022-07-13 06:00:00 有 26 个点, 填补 0 个点. - data_fill
+2025-03-28 09:48:43,069 - data_handler.py - INFO - 2022-07-13 23:45:00 ~ 2022-08-01 20:00:00 有 1810 个点, 填补 2 个点. - data_fill
+2025-03-28 09:48:43,071 - data_handler.py - INFO - 2022-08-01 23:45:00 ~ 2022-08-02 21:00:00 有 86 个点, 填补 0 个点. - data_fill
+2025-03-28 09:48:43,072 - data_handler.py - INFO - 2022-08-02 23:45:00 ~ 2022-08-04 00:00:00 有 98 个点, 填补 0 个点. - data_fill
+2025-03-28 09:48:43,073 - data_handler.py - INFO - 2022-08-04 23:15:00 ~ 2022-08-05 00:00:00 有 4 个点, 填补 0 个点. - data_fill
+2025-03-28 09:48:43,074 - data_handler.py - INFO - 2022-08-05 23:15:00 ~ 2022-08-06 00:00:00 有 4 个点, 填补 0 个点. - data_fill
+2025-03-28 09:48:43,075 - data_handler.py - INFO - 2022-08-06 23:15:00 ~ 2022-08-07 00:00:00 有 4 个点, 填补 0 个点. - data_fill
+2025-03-28 09:48:43,076 - data_handler.py - INFO - 2022-08-07 23:15:00 ~ 2022-08-07 23:45:00 有 3 个点, 填补 0 个点. - data_fill
+2025-03-28 09:48:43,076 - data_handler.py - INFO - 训练集分成了15段,实际一共补值4点 - data_fill
+2025-03-28 09:48:45,483 - data_handler.py - INFO - 特征处理-训练数据-不满足time_step - get_train_data
+2025-03-28 09:48:45,484 - data_handler.py - INFO - 特征处理-训练数据-无法进行最小分割 - get_train_data
+2025-03-28 09:48:45,484 - data_handler.py - INFO - 特征处理-训练数据-不满足time_step - get_train_data
+2025-03-28 09:48:45,484 - data_handler.py - INFO - 特征处理-训练数据-无法进行最小分割 - get_train_data
+2025-03-28 09:48:45,484 - data_handler.py - INFO - 特征处理-训练数据-不满足time_step - get_train_data
+2025-03-28 09:48:45,484 - data_handler.py - INFO - 特征处理-训练数据-无法进行最小分割 - get_train_data
+2025-03-28 09:48:45,484 - data_handler.py - INFO - 特征处理-训练数据-不满足time_step - get_train_data
+2025-03-28 09:48:45,484 - data_handler.py - INFO - 特征处理-训练数据-无法进行最小分割 - get_train_data
+2025-03-28 09:48:45,672 - dbmg.py - INFO - ❌ 系统异常: Authentication failed., full error: {'ok': 0.0, 'errmsg': 'Authentication failed.', 'code': 18, 'codeName': 'AuthenticationFailed'} - get_keras_model_from_mongo
+2025-03-28 09:48:45,672 - tf_fmi.py - INFO - 加强训练加载模型权重失败:("Authentication failed., full error: {'ok': 0.0, 'errmsg': 'Authentication failed.', 'code': 18, 'codeName': 'AuthenticationFailed'}",) - train_init
+2025-03-28 09:48:56,555 - tf_fmi.py - INFO - -----模型训练经过27轮迭代----- - training
+2025-03-28 09:48:56,556 - tf_fmi.py - INFO - 训练集损失函数为:[50.81253 27.42134 15.70889  9.45657  5.92459  3.68006  2.2472   1.37757
+  0.88398  0.61301  0.46807  0.38933  0.34411  0.32137  0.30921  0.30322
+  0.29953  0.29853  0.29652  0.29489  0.29435  0.29366  0.29466  0.29338
+  0.29248  0.29236  0.2922 ] - training
+2025-03-28 09:48:56,556 - tf_fmi.py - INFO - 验证集损失函数为:[31.24954 19.522   11.71835  7.35976  4.65779  2.91401  1.82848  1.18742
+  0.80744  0.58592  0.46629  0.40836  0.38216  0.37268  0.37405  0.36883
+  0.36879  0.38428  0.37288  0.37732  0.38255  0.39734  0.39197  0.41757
+  0.39943  0.39559  0.42329] - training
+2025-03-28 09:48:56,621 - dbmg.py - INFO - ❌ 数据库操作 - 详细错误: Authentication failed., full error: {'ok': 0.0, 'errmsg': 'Authentication failed.', 'code': 18, 'codeName': 'AuthenticationFailed'} - insert_trained_model_into_mongo

+ 1 - 1
app/model/data/DQYC/20220807/2365/OUT/STATUS.TXT

@@ -1,2 +1,2 @@
 1
-2
+3