以化学工业反应为例的因果门控时间序列神经网络
torch
:用于实现神经网络的计算。
nn
:提供神经网络构建块。
optim
:提供优化算法。
matplotlib.pyplot
、
numpy
、
pandas
、
seaborn
:用于数据可视化和分析。
pickle
:用于保存和加载模型数据。
create_sequences
函数用于将数据划分为训练和测试窗口。
CGTSTModel
类继承自
nn.Module
,包含因果门控结构、线性变换、位置编码、Transformer编码器层和输出层。
CausalGate
类实现因果门控结构。
MSELoss
作为损失函数,
Adam
作为优化器。
__init__
接受输入大小(input_size)作为参数,并调用父类的初始化函数。
gate_vector
,它是一个形状为input_size的张量,初始值为全1。
forward
接受输入x,并通过对
gate_vector
进行softmax操作,计算得到softmax_vector。
__init__
接受输入大小(input_size)、输出大小(output_size)、输入窗口大小(in_window_size)和输出窗口大小(out_window_size)作为参数,并调用父类的初始化函数。
causal_gate
:CausalGate类的实例,用于运行因果门结构。
linear_transform
:线性变换层,将输入进行线性变换。
positional_encoding
:位置编码层,用于将输入序列进行位置编码。
embedding
:线性变换层,将输入进行嵌入操作。
transformer_encoder
:Transformer编码器层,利用多层TransformerEncoderLayer对输入进行编码。
fc
:线性层,将编码后的输入进行平展并输出结果。
forward
接受输入x,并按照模型的架构依次进行计算和转换操作,最终返回模型的输出。
__init__
接受最大序列长度(max_len)和每个位置的编码维度(d_model)作为参数,并调用父类的初始化函数。
register_buffer
方法将计算得到的pe作为位置编码张量进行注册。
forward
接受输入x,并将位置编码张量与输入相加,实现位置编码的操作。