这段代码是一个基于机器学习的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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录