Machine learning Keras中幕式模式的多对一递归网络
我正试图用Keras建立一个递归神经网络。我以所提出的讨论为基础 然而,据我所知,在最初讨论中提出的解决方案中,没有“插曲”的概念。让我解释一下我的意思 假设您有6个实例x1、x2、x3、x4、x5、x6。给定大小为3的循环窗口,第一个输出为x3。我指的是y3。因此,没有插曲概念的输入输出对如下所示:Machine learning Keras中幕式模式的多对一递归网络,machine-learning,neural-network,deep-learning,keras,recurrent-neural-network,Machine Learning,Neural Network,Deep Learning,Keras,Recurrent Neural Network,我正试图用Keras建立一个递归神经网络。我以所提出的讨论为基础 然而,据我所知,在最初讨论中提出的解决方案中,没有“插曲”的概念。让我解释一下我的意思 假设您有6个实例x1、x2、x3、x4、x5、x6。给定大小为3的循环窗口,第一个输出为x3。我指的是y3。因此,没有插曲概念的输入输出对如下所示: [x1,x2,x3],[y3] [x2,x3,x4],[y4] [x3,x4,x5],[y5] [x4,x5,x6],[y6] 然而,我的数据有明确的界限。在本例中,我将有两集,因此训练对如下
- [x1,x2,x3],[y3]
- [x2,x3,x4],[y4]
- [x3,x4,x5],[y5]
- [x4,x5,x6],[y6]
- [x1,x2,x3],[y3]
- [x4,x5,x6],[y6]
提前感谢。我相信这可以通过后退一步,重新构造和重塑您提供给RNN模型本身的数据来实现。冒着听起来冗长的风险,我给出以下解释: 你应该有一个X和一个y。我建议这两个都是3D NumPy阵列,其中
- 数组[i]访问特定的序列i
- 数组[i][j]访问特定序列i的特定时间步长j
- 数组[i][j][k]在特定序列i的特定时间步j访问特定特征k(注意,y的k的长度将等于1,因为我们每个时间步仅预测一个目标)
shape(X)
# (8, 3, 5)
shape(y)
# (8, 3, 1)
现在假设您已经以这种方式构建了数据,那么您所要做的就是确保X和y训练实例以您希望的方式相互匹配。要使用注释,请执行以下操作:
print(X[0][0])
# [x1, x2, x3]
print(y[0][0])
# [y3]
print(X[1][0])
# [x4, x5, x6]
print(y[1][0])
# [y6]
现在假设您已经有了这个(序列、时间步长、功能)3D NumPy数组结构,用于输入到模型中的数据。只需从X和y中删除您不想删除的训练实例
- [x1,x2,x3],[y3]
- [x2,x3,x4],[y4]
- [x3,x4,x5],[y5]
- [x4,x5,x6],[y6]