处理多头 CNN 的标签
handle labels for a multi-headed CNN
我正在尝试构建一个 "multi-headed CNN model",因此每个头都是一个分支,接收单独的多变体时间序列数据。
我不清楚如何处理 "fit" 方法,或者换句话说,如何正确准备 y_train。标签有2个类 0和1
当前架构如下所示。
目标是提前预测一个time_step
输入形状是:
A Training Data (1, 903155, 5)
B Training Data (1, 903116, 5)
C Training Data (1, 902996, 5)
标签形状:
y_train (903155, 1)
做的时候:
history = model.fit(x = [A,B,C], y = y_in)
比我得到的:
Input arrays should have the same number of samples as target arrays. Found 1 input samples and 903155 target samples.
将 y_in 重塑为 (1, 903155) 结果:
expected dense_5 (see image) to have shape (1,) but got array with shape (903155,)
奇怪的是 model.predict([A,B,C]) 产生结果
问题的根源在于批处理维度处理不当;所有图层和数据的第一个维度是批处理维度。错误解释如下。
解决方法:
y_train (903155, 1)
是正确的,但 A, B,
和 C
可能不正确:它们分别指定了尺寸为 (903155, 5), (903116, 5),
和 (902996, 5)
的一个样本。我怀疑这是需要的 - 更可能的是,90...
是 批次维度 ,应该重塑为:(903155, 1, 5)
,等等
错误解释:
- 错误 1 表示您输入了 1 个样本(训练示例),但输入了 903155 个标签
- 错误 2 表示
dense_5
输出的形状为 (None, 1)
,但在计算损失 时预计会与 (None, 903155)
进行比较
Input arrays should have the same number of samples as target arrays. Found 1 input samples and 903155 target samples. # Error 1
expected dense_5 to have shape (1,) but got array with shape (903155,) # Error 2
经过一番挖掘,我找到了答案,因为 OverLordGoldDragon 提到输入和输出形状不正确。
1d Conv 期望输入数据始终为:
(样本,timesteps_per_sample,features_per_sample)
所以在我的例子中 (1, 903155, 5) --> (903155, 1, 5)
我正在尝试构建一个 "multi-headed CNN model",因此每个头都是一个分支,接收单独的多变体时间序列数据。
我不清楚如何处理 "fit" 方法,或者换句话说,如何正确准备 y_train。标签有2个类 0和1
当前架构如下所示。
目标是提前预测一个time_step
输入形状是:
A Training Data (1, 903155, 5)
B Training Data (1, 903116, 5)
C Training Data (1, 902996, 5)
标签形状:
y_train (903155, 1)
做的时候:
history = model.fit(x = [A,B,C], y = y_in)
比我得到的:
Input arrays should have the same number of samples as target arrays. Found 1 input samples and 903155 target samples.
将 y_in 重塑为 (1, 903155) 结果:
expected dense_5 (see image) to have shape (1,) but got array with shape (903155,)
奇怪的是 model.predict([A,B,C]) 产生结果
问题的根源在于批处理维度处理不当;所有图层和数据的第一个维度是批处理维度。错误解释如下。
解决方法:
y_train (903155, 1)
是正确的,但 A, B,
和 C
可能不正确:它们分别指定了尺寸为 (903155, 5), (903116, 5),
和 (902996, 5)
的一个样本。我怀疑这是需要的 - 更可能的是,90...
是 批次维度 ,应该重塑为:(903155, 1, 5)
,等等
错误解释:
- 错误 1 表示您输入了 1 个样本(训练示例),但输入了 903155 个标签
- 错误 2 表示
dense_5
输出的形状为(None, 1)
,但在计算损失 时预计会与
(None, 903155)
进行比较
Input arrays should have the same number of samples as target arrays. Found 1 input samples and 903155 target samples. # Error 1
expected dense_5 to have shape (1,) but got array with shape (903155,) # Error 2
经过一番挖掘,我找到了答案,因为 OverLordGoldDragon 提到输入和输出形状不正确。
1d Conv 期望输入数据始终为: (样本,timesteps_per_sample,features_per_sample)
所以在我的例子中 (1, 903155, 5) --> (903155, 1, 5)