具体参考上一篇文章:
【深度学习驱动流体力学】采集OpenFOAM仿真数据作为AI模型训练数据集与卷积神经网络搭建到预测(一站式完整代码实现)
原理介绍
数据处理与预处理
该代码首先导入必要的库,包括用于读取和处理VTK文件的pyvista,用于数值计算的numpy,用于路径操作的os,用于数据集划分的sklearn,用于构建和训练神经网络的tensorflow,以及用于可视化的matplotlib。然后,定义数据目录并生成要读取的VTK文件路径列表。通过read_vtk函数读取VTK文件并提取速度场数据,并将所有数据存储在一个numpy数组中。数据读取后,将其划分为训练集和测试集,并对数据进行规范化处理,以确保数据均值为0,标准差为1,防止训练过程中的数值问题。
LSTM模型构建与训练
构建LSTM模型时,使用了tf.keras.Sequential构建顺序模型,包含两个LSTM层和一个Dropout层。第一层LSTM包含128个单元,并返回完整序列;第二层LSTM包含64个单元,不返回序列。Dropout层用于随机丢弃20%的神经元,以防止过拟合。Dense层将输出展平为原始形状的大小,并通过Reshape层将其重新变回输入的形状。模型使用Adam优化器和均方误差(MSE)作为损失函数,均绝对误差(MAE)作为度量指标进行编译。训练过程中,使用早停法监控验证损失,防止过拟合。