【发布时间】:2018-04-09 09:15:26
【问题描述】:
我正在处理从身体 10 个单独位置记录的时间序列 EEG 数据,以根据增加的心脏活动对未来行为进行分类。我想更好地了解我的标记数据如何对应于训练输入。
到目前为止,几种 RNN 配置以及无数香草密集网络组合都没有给我带来很好的结果,我认为一维卷积网络值得一试。
我无法理解的事情是:
1.) 将数据输入模型。
orig shape = (30000 timesteps, 10 channels)
array fed to layer = (300 slices, 100 timesteps, 10 channels)
这些切片是由 1 个时间步长分开,在原始数组的任一端给我 300 个时间步长切片,还是它们是端到端分开的?如果第二个是真的,我怎么能创建一个由一个 ts 分隔的(30000 - 100)个切片数组,并且还与 1D CNN 层兼容?
2) 将标签与训练和测试数据匹配
我的理解是,当您输入一系列train_x_shape = (30000, 10) 时,有30000 个标签与train_y_shape = (30000, 2)(2 个类)与train_x 数据相关联。
所以,当(300 片)100 个时间步的train_x 数据和shape = (300, 100, 10) 被输入到模型中时,标签值是否对应于整个 100 ts(每 100 ts 一个标签,此标签等于到最后一个时间步的标签),或者切片中的每 100 行/向量是否标记为每个 ts 一个?
训练输入:
train_x = train_x.reshape(train_x.shape[0], 1, train_x.shape[1])
n_timesteps = 100
n_channels = 10
layer : model.add(Convolution1D(filters = n_channels * 2, padding = 'same', kernel_size = 3, input_shape = (n_timesteps, n_channels)))
final layer : model.add(Dense(2, activation = 'softmax'))
我使用categorical_crossentropy 表示损失。
【问题讨论】:
-
请提供代码。到目前为止,您尝试过什么?
-
我已经编辑了上面的帖子
标签: tensorflow keras conv-neural-network