import numpy as np
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
import tensorflow as tf
import sys
# 用来接收参数 0:py文件名 1:CSV文件,2: 模型的类别
javaToPy = sys.argv[0:]
# csvPath = "D:\\Program\\workspace\\python\\实训材料\\fallraw_7041JA26clear.csv" # 数据文件
# 加载数据集
pre_len = 24 * 2+24
df = pd.read_csv(javaToPy[1], header=0, index_col=0)
# df = pd.read_csv(csvPath, header=0, index_col=0)
df = df.iloc[-pre_len:-24,:]
# 数据处理
x_pre_set = df.iloc[:, :-1].copy()
y_pre_set = df.iloc[:, -1:].copy()
sc1 = MinMaxScaler(feature_range=(0, 1))
x_set = sc1.fit_transform(x_pre_set)
sc2 = MinMaxScaler(feature_range=(0, 1))
y_set = sc2.fit_transform(y_pre_set)
# 多维预测分块--------------------------------------------------
def data_sblocck(x_set, sblock):
x_train = []
for i in range(sblock, len(x_set)):
x_train.append(x_set[i - sblock:i, :])
x_train = np.array(x_train)
return x_train
sblock = 2 * 24 # 训练的步数 小时数
x_pre = data_sblocck(x_set, sblock)
# 加载模型
if javaToPy[2] == '单层LSTM': # 单层lstm 模型
model = tf.keras.models.load_model(r'D:\Program\workspace\java\Idea\water levels\python\model\1lstm.h5')
elif javaToPy[2] == '双层LSTM': # 双层lstm 模型
model = tf.keras.models.load_model(r'D:\Program\workspace\java\Idea\water levels\python\model\2lstm.h5')
elif javaToPy[2] == 'GRU': # GRU 模型
model = tf.keras.models.load_model(r'D:\Program\workspace\java\Idea\water levels\python\model\GRU.h5')
elif javaToPy[2] == 'simpleRNN': # SimpleRNN 模型
model = tf.keras.models.load_model(r'D:\Program\workspace\java\Idea\water levels\python\model\simpleRNN.h5')
else:
model = tf.keras.models.load_model(r'D:\Program\workspace\java\Idea\water levels\python\model\BiRNN.h5')
# model = tf.keras.models.load_model(r'D:\Program\workspace\java\Idea\water levels\python\model\lstm.h5')
# model.summary() # 模型结构
# 数据预测
y_res = model.predict(x_pre)
y_result = sc2.inverse_transform(y_res)
y_result = y_result.reshape(1, len(y_result))
# y_result 为 预测数据
print(y_result)
程序员柳
- 粉丝: 8293
- 资源: 1469
最新资源
- 【信号检测】基于matlab大规模过载MIMO信号检测(含信噪比)【含Matlab源码 9938期】.zip
- 【图像压缩】基于matlab GUI DCT图像压缩(含MAX MED MIN NONE)【含Matlab源码 9946期】.zip
- 【信号检测】基于matlab大规模过载MIMO信号检测(含信噪比LDPC)【含Matlab源码 9939期】.zip
- 基于小程序的新冠抗原自测平台小程序源代码(java+小程序+mysql+LW).zip
- 基于小程序的养老院管理系统源代码(java+小程序+mysql+LW).zip
- 3. Kafka入门-安装与基本命令
- 多功能知识付费源码下载实现流量互导多渠道变现+搭建教程
- 基于小程序的音乐播放器小程序源代码(java+小程序+mysql+LW).zip
- 基于小程序的岳阳市美术馆预约平台源代码(java+小程序+mysql+LW).zip
- 基于小程序的在线疫苗预约小程序源代码(java+小程序+mysql+LW).zip
- IEC 60870-5 协议全套资料
- 基于小程序的智慧物流小程序源代码(java+小程序+mysql+LW).zip
- MVIMG_20241222_194113.jpg
- 基于小程序的智慧物业平台源代码(java+小程序+mysql+LW).zip
- 第四组二手产品.zip
- 微电网(两台)主从控制孤岛-并网平滑切的分析 分析了: 1.孤岛下VF控制 2.并网下PQ控制 3.孤岛下主从控制 4.孤岛到并网的平滑切控制 5.除模型外还对分布式发电与主动配电网一些常见问题做了
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈