David 4 dias atrás
pai
commit
d937fbee0e

+ 2 - 2
data_processing/data_operation/data_handler.py

@@ -65,8 +65,8 @@ class DataHandler(object):
         feature_data = norm_data.reset_index(drop=True)
         time_step *= int(time_series)
         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']
+        iters = int(len(feature_data)) // time_step
+        end = int(len(feature_data)) % time_step
         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)

+ 2 - 2
models_processing/model_tf/tf_lstm.py

@@ -37,11 +37,11 @@ class TSHandler(object):
             self.logger.info("加载模型权重失败:{}".format(e.args))
 
     @staticmethod
-    def get_keras_model(opt):
+    def get_keras_model(opt, time_series=1):
         loss = region_loss(opt)
         l1_reg = regularizers.l1(opt.Model['lambda_value_1'])
         l2_reg = regularizers.l2(opt.Model['lambda_value_2'])
-        nwp_input = Input(shape=(opt.Model['time_step'], opt.Model['input_size']), name='nwp')
+        nwp_input = Input(shape=(opt.Model['time_step']*time_series, opt.Model['input_size']), name='nwp')
 
         con1 = Conv1D(filters=64, kernel_size=5, strides=1, padding='valid', activation='relu', kernel_regularizer=l2_reg)(nwp_input)
         con1_p = MaxPooling1D(pool_size=5, strides=1, padding='valid', data_format='channels_last')(con1)

+ 3 - 3
models_processing/model_tf/tf_lstm2_train.py

@@ -58,7 +58,7 @@ def model_training_bp():
         # ------------ 训练模型,保存模型 ------------
         # 1. 如果是加强训练模式,先加载预训练模型特征参数,再预处理训练数据
         # 2. 如果是普通模式,先预处理训练数据,再根据训练数据特征加载模型
-        model = ts.train_init() if ts.opt.Model['add_train'] else ts.get_keras_model(ts.opt)
+        model = ts.train_init() if ts.opt.Model['add_train'] else ts.get_keras_model(ts.opt, time_series=2)
         if ts.opt.Model['add_train']:
             if model:
                 feas = json.loads(ts.model_params)['features']
@@ -66,10 +66,10 @@ def model_training_bp():
                     dh.opt.features = list(feas)
                     train_x, train_y, valid_x, valid_y, scaled_train_bytes, scaled_target_bytes, scaled_cap = dh.train_data_handler(train_data, time_series=2)
                 else:
-                    model = ts.get_keras_model(ts.opt)
+                    model = ts.get_keras_model(ts.opt, time_series=2)
                     logger.info("训练数据特征,不满足,加强训练模型特征")
             else:
-                model = ts.get_keras_model(ts.opt)
+                model = ts.get_keras_model(ts.opt, time_series=2)
         ts_model = ts.training(model, [train_x, train_y, valid_x, valid_y])
         args['Model']['features'] = ','.join(dh.opt.features)
         args['params'] = json.dumps(args)