基于深度学习的RUL预测模型代码实现
这段代码是一个基于机器学习的RUL预测模型。代码首先通过输入数据集名称、传感器名称、序列长度、平滑强度和最大RUL等参数,获取数据集并对其进行处理。然后定义了一个基于深度学习的RUL预测模型,包括输入维度、中间层维度、批处理大小、潜在维度、训练轮数和优化器等参数。接着定义了回调函数用于训练模型,并对模型进行训练。最后通过可视化潜在空间和评估预测结果来评估模型的性能。
import model
import utils
import numpy as np
if __name__ == "__main__":
# ------------------------------ DATA -----------------------------------
dataset = input('Enter dataset (FD001, FD002, FD003, FD004): ')
# sensors to work with: T30, T50, P30, PS30, phi
sensors = ['s_3', 's_4', 's_7', 's_11', 's_12']
# windows length
sequence_length = 30
# smoothing intensity
alpha = 0.1
# max RUL
threshold = 125
x_train, y_train, x_val, y_val, x_test, y_test = utils.get_data(dataset, sensors,
sequence_length, alpha, threshold)
# -----------------------------------------------------------------------
# ----------------------------- MODEL -----------------------------------
timesteps = x_train.shape[1]
input_dim = x_train.shape[2]
intermediate_dim = 300
batch_size = 128
latent_dim = 2
epochs = 10000
optimizer = 'adam'
RVE = model.create_model(timesteps,
input_dim,
intermediate_dim,
batch_size,
latent_dim,
epochs,
optimizer,
)
# Callbacks for training
model_callbacks = utils.get_callbacks(RVE, x_train, y_train)
# -----------------------------------------------------------------------
# --------------------------- TRAINING ---------------------------------
results = RVE.fit(x_train, y_train,
shuffle=True,
epochs=epochs,
batch_size=batch_size,
validation_data= (x_val, y_val),
callbacks=model_callbacks, verbose=2)
# -----------------------------------------------------------------------
# -------------------------- EVALUATION ---------------------------------
RVE.load_weights('./checkpoints/checkpoint')
train_mu = utils.viz_latent_space(RVE.encoder, np.concatenate((x_train, x_val)), np.concatenate((y_train, y_val)))
test_mu = utils.viz_latent_space(RVE.encoder, x_test, y_test.clip(upper=threshold))
# Evaluate
y_hat_train = RVE.regressor.predict(train_mu)
y_hat_test = RVE.regressor.predict(test_mu)
utils.evaluate(np.concatenate((y_train, y_val)), y_hat_train, 'train')
utils.evaluate(y_test, y_hat_test, 'test')
# -----------------------------------------------------------------------
代码中的utils.get_data()、model.create_model()、utils.get_callbacks() 和 utils.evaluate() 函数分别用于获取数据集、构建模型、定义回调函数和评估模型性能。模型的训练过程使用 RVE.fit() 函数,并使用 RVE.load_weights() 函数加载训练好的模型权重。最后,代码通过可视化潜在空间和评估预测结果来展示模型的性能。
原文地址: https://www.cveoy.top/t/topic/jNYk 著作权归作者所有。请勿转载和采集!