Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python LSTM-将deltaTime用作功能?如何处理不规则的时间戳?_Python_Tensorflow_Lstm_Recurrent Neural Network_Tf.keras - Fatal编程技术网

Python LSTM-将deltaTime用作功能?如何处理不规则的时间戳?

Python LSTM-将deltaTime用作功能?如何处理不规则的时间戳?,python,tensorflow,lstm,recurrent-neural-network,tf.keras,Python,Tensorflow,Lstm,Recurrent Neural Network,Tf.keras,我试图创建一个用于数据序列分类的LSTM 我将使用的每个培训输入的数据结构是: [[ [deltaX,deltaY,deltaTime], [deltaX,deltaY,deltaTime],... ],class] 其中deltaX和deltaY反映了给定时间deltaTime内X和Y的变化。 deltaTime并非每次都相同,它可以从40毫秒到50毫秒,有时甚至1000毫秒不等。末尾的“类”是一个二进制分类,可以是0或1 问题1(常规LSTM):如果我要使用基本LSTM(Keras LST

我试图创建一个用于数据序列分类的LSTM

我将使用的每个培训输入的数据结构是:

[[
[deltaX,deltaY,deltaTime],
[deltaX,deltaY,deltaTime],...
],class]
其中deltaX和deltaY反映了给定时间deltaTime内X和Y的变化。
deltaTime并非每次都相同,它可以从40毫秒到50毫秒,有时甚至1000毫秒不等。末尾的“类”是一个二进制分类,可以是0或1

问题1(常规LSTM):如果我要使用基本LSTM(Keras LSTM),我是否应该将deltaTime作为功能输入


我知道LSTM有时间戳,但这些时间戳固定为一个给定的长度。我已经仔细研究了PhasedLSTM,但它们似乎更适合于2个周期性的时间框架,这两个时间框架发生了变化


我遇到的唯一适合我的是时间感知的LSTM


问题2(有时间意识的LSTM):你会推荐他们解决我的问题吗?如果是:是否有keras实现,因为我以前没有使用tensorflow。

如果我理解正确,deltaTime是数据集中两个连续元素之间经过的时间间隔,对于不同的元素,Delta是不同的

  • 一般来说,LSTM期望序列元素之间的持续时间具有一定的规律性。 所以,为了回答您的第一个问题:您可能应该这样做,因为它不是实时序列,所以您也可以尝试其他NN类型。“可能”,因为无论是否使用此功能,在检查测试集的精度时都会得到真正的答案

  • T-LSTM是一个模型(实际上是一个以不同方式修改您的训练集和训练需求LSTM的代码),它是针对与您完全相同的情况提出的。它已经两年没有更新了,可能需要进行一些修改以支持TF2。 Keras本身就是高端API,运行在包括TensorFlow在内的多个框架之上。您可以使用它并通过它运行任何TF功能,尽管我建议使用TF.keras


  • 作为旁注,我建议你的问题看一下时滞神经网络。TDNN是在TensorFlow、PyTorch和许多其他框架中实现的。

    鉴于您的输出只是一个二进制变量,我不确定是否值得在这个问题上投入那么多技术机器

    有两种选择:

  • 将数据转换为一组定期采样的
    x,y
    坐标。只需选择一组“好”的时间,并适当地插值位置变化(三角函数将是最简单的,或者你可以做线性的,或者更具体的问题)。然后,您可以将此工程功能用于更多型号,如简单的CNN

  • 高斯过程回归将直接处理这类数据,但与神经网络模型的类型截然不同


  • 谢谢你的回答!看来TDNN就是我要找的!尽管我在TensorFlow和PyTorch中都找不到任何正式的实现。你能提供一个链接吗?在1。您建议使用其他类型的NN-您是否仅指TDNN?您还建议使用哪些其他类型?pytorch有几种流行的实现(不是官方的,但众所周知):还有更新的。至于TensorFlow,你可以使用1-d CNN和stride 1。查看艾伦·洛克特的解释:谢谢你的回答!虽然这不是我想要的。1.会操纵数据。只有当deltaX,Y仅依赖于deltaTime时,这才有效。高斯过程回归可以将这两个类分开,尽管它无法学会依靠特征上下文进行分离。