Y-debug-sys / Diffusion-TS

[ICLR 2024] Official Implementation of "Diffusion-TS: Interpretable Diffusion for General Time Series Generation"
MIT License
186 stars 27 forks source link

关于条件生成时间序列,数据格式的问题 #53

Closed holydick99 closed 3 months ago

holydick99 commented 3 months ago

感谢作者对模型的开源,我有一个问题,当前我的数据集是(样本数,时间长度),同时数据有0,1两种标签,那我的csv数据格式应该是什么样,才能符号模型的输入才能使用标签去引导数据的生成

Y-debug-sys commented 3 months ago

你好,请问任务是什么?按类别生成吗?

Y-debug-sys commented 3 months ago

回答,谢谢。

holydick99 commented 3 months ago

回答,谢谢。

我的理解如下,如果我的数据集里面有N个样本,但是只有A和B两种,如果生成A和B两种数据的话,我只需要分别传入一个A类数据和一个B类数据?

Y-debug-sys commented 3 months ago

不是,可以照常一起不分类训练,只在生成的时候像我们一样导向,只不过需要额外训练一个分类器,见 Classifier-guidance 源码.

holydick99 commented 3 months ago

感觉有点混乱,所以我还是直接传入一个n×时间步长的数据即可,但是要在代码中修改配置即在代码中添一个分类器训练??

holydick99 commented 3 months ago

可以详细讲解一下吗,谢谢

Y-debug-sys commented 3 months ago

直接传入一个n×时间步长的数据即可

是的,不需要分类训练,但是需要额外训练一个辨别器(输入加噪的xt后判断类别),取样时,按照辨别器的输出(向着指定类别梯度下降)调整生成结果。

holydick99 commented 3 months ago

XOX$2@3EFT`27VHBTD@Z_S9 意味着我要去修改这个代码来符合我的数据集,然后添加到项目代码中。我参考了你上面引用的代码,但是发现在guided_diffusion.py和项目中的采样函数并不相似,所以对一个新手来说可能并不知道这个修改的思路一个如何去建立。还是说只需要将下面这段代码并入到您的采样函数中 ![Uploading image.png…]()

我还有一个问题,如果我想采用非条件生成,是否意味着我传入同一类数据(n,时间长度)即可生成相同类?

holydick99 commented 3 months ago

第二张图如图 image

Y-debug-sys commented 3 months ago

你好,是差不太多的,画圈的部分可以直接加入原代码(替换 langevin_fn 中的 infill_loss )

image

holydick99 commented 3 months ago

你好,是差不太多的,画圈的部分可以直接加入原代码(替换 langevin_fn 中的 infill_loss )

image

Y-debug-sys commented 3 months ago
  1. 与原本的插入预测不同,分类生成不需要传入任何数据,只需要传入额外的分类器和所需生成的类。
  2. 模型本体训练无区别,生成加了导向,速度会慢一点。
  3. 只需要改动对应的数据维度和序列长度即可运行,剩下的属于调参选项。
holydick99 commented 3 months ago
  1. 与原本的插入预测不同,分类生成不需要传入任何数据,只需要传入额外的分类器和所需生成的类。
  2. 模型本体训练无区别,生成加了导向,速度会慢一点。
  3. 只需要改动对应的数据维度和序列长度即可运行,剩下的属于调参选项。

我想您对我的问题可能有点误解,首先我输入我的A类数据进行训练diffusion-model,然后我在您提供的选项种选择采样条件 L(_E}BZDG$WJ2J41P1@AVIP ,后生成一定数量的A类数据。这样是可行的吗?

我对您之前的解答的理解是,我传入包含N类的数据,此时diffusion学习到了N类的噪声分布,在生成时我只需要输入固定类即可生成对应数据,但是我对分类器的作用仍然有一些困惑?

Y-debug-sys commented 3 months ago

你好,是可以的,谢谢。

holydick99 commented 3 months ago

你好,是可以的,谢谢。

谢谢解答