-1

我使用 Keras 构建了一个成功的卷积网络,从 EEG 中对某些大脑活动进行分类。然而,我想通过添加一个我们知道它可以预测这种大脑活动的额外特征来改进它;年龄,当然是不同比例的一维数组。我该怎么做?

我可以将年龄添加到“图像”作为额外维度吗?或者我应该使用年龄对不同模型中的大脑活动进行分类,然后合并两个模型?或者有选择吗?

> X.shape  
 (745,13,60,1) (Trials, channels, frequencies, extra_dim)

> age.shape
(745,)

感谢您提供任何提示并与我一起思考!

最好的,

汉内克

4

1 回答 1

0

不相关:为什么额外的暗淡?你在使用 Conv2D 吗?您应该使用 Conv1D 获得更好的结果,使用(exams, timeSteps, channels).

另外:你确定你正在使用data_format='channels_first'吗?Keras 的默认值为data_format='channels_last'.


Conv2D 的答案:

您必须选择一种交互这两组数据的形式。这种互动可以很有创意,没有规则。两种可能:

  • 将这个 1D 值乘以某处,或者相加,或者考虑好的操作(需要具有两个输入的功能性 API 模型)。
  • 将年龄作为附加通道添加到每一步(我喜欢这个)

将年龄添加为附加通道:

x_with_age = np.empty((745,14,60,1)) 
age = age.reshape((745,1,1,1))

x_with_age[:,:13] = X
x_with_age[:,-1:] = age

x_with_age使用作为输入来训练模型。


如果遵循 Conv1D 建议:

#this is using channels_last, which is keras' default   
#if your data is channels_first, then just invert the shapes below

X = should be something like (745, 60, 13)

x_with_age = np.empty((745,60,14)) 
age = age.reshape((745,1,1))

x_with_age[:,:,:13] = X
x_with_age[:,:,-1:] = age
于 2018-04-16T12:37:53.200 回答