Darts是一个用于时间序列处理的开源项目,包含各种神经网络的实现,github地址:https://github.com/unit8co/darts
Temporal Convolutional Network(TCN)
时域卷积网络
class TCNModel(TorchForecastingModel): def __init__(self, input_chunk_length: int, output_chunk_length: int, kernel_size: int = 3, num_filters: int = 3, num_layers: Optional[int] = None, dilation_base: int = 2, weight_norm: bool = False, dropout: float = 0.2, random_state: Optional[Union[int, RandomState]] = None, **kwargs):函数内容省略,可到darts官网下载项目查看。
这是用于预测的扩张 TCN 的实现:
https://arxiv.org/abs/1803.01271
该模型支持过去的协变量(已知预测时间之前的输入长度点)。
参数:
input_chunk_length :送到预测模块的过去时间步数
output_chunk_length:torch模块一次预测未来的时间步数。
kernel_size :卷积层中每个内核的大小。
num_filters :TCN卷积层中的滤波器数量。
weight_norm :指示是否使用权重规格化的布尔值。
dilation_base :指数的基数,它将决定每一层的膨胀。
num_layers :卷积层的数量。
dropout :每个卷积层的dropout比例。
likelihood :(可选)用于概率预测的可能性模型。如果没有提供可能性模型,预测将是确定性的。
random_state – 控制权重初始化的随机性。查看此 链接了解更多详情。
batch_size – 每次训练中使用的时间序列(输入和输出序列)的数量。
n_epochs – 训练模型的时期数。
optimizer_cls – 要使用的 PyTorch 优化器类(默认值:torch.optim.Adam)。
optimizer_kwargs – 可选,PyTorch 优化器的一些关键字参数(例如,{'lr': 1e-3} 用于指定学习率)。否则 将使用选定的optimizer_cls的默认值。
lr_scheduler_cls – 可选地,要使用的 PyTorch 学习率调度程序类。指定None对应于使用恒定的学习率。
lr_scheduler_kwargs – PyTorch 优化器的一些关键字参数(可选)。
loss_fn – 用于训练的 PyTorch 损失函数。如果指定了似然参数,则对于概率模型将忽略此参数。默认值:torch.nn.MSELoss()。
model_name –模型的名称。用于创建检查点和保存张量板数据。如果未指定,则默认为以下字符串“YYYY-mm-dd_HH:MM:SS_torch_model_run_PID”,其中名称的初始部分使用本地日期和时间进行格式化,而 PID 是处理后的 ID(防止模型同时生成时间由不同的进程共享相同的模型名称)。例如,2021-06-14_09:53:32_torch_model_run_44607。
work_dir – 工作目录的路径,保存检查点和 Tensorboard 摘要的位置。(默认:当前工作目录)。
log_tensorboard – 如果设置,使用 Tensorboard 记录不同的参数。日志将位于: [work_dir]/.darts/runs/。
nr_epochs_val_period – 在评估验证损失之前等待的时期数(如果验证 TimeSeries传递给fit()方法)。
torch_device_str – 可选的,指示要使用的torch device的字符串。(默认值:“cuda:0”,如果 GPU 可用,否则“cpu”)
force_reset – 如果设置为True,则任何先前存在的同名模型都将被重置(所有检查点都将被丢弃)。
翻译自:
https://unit8co.github.io/darts/generated_api/darts.models.tcn_model.html