以下是完整的错误信息:
InvalidArgumentError: Can not squeeze dim[1], expected a dimension of 1, got 499
[[{{node metrics_12/acc/Squeeze}}]]
[[{{node ConstantFoldingCtrl/loss_12/time_distributed_6_loss/broadcast_weights/assert_broadcastable/AssertGuard/Switch_0}}]]
我可以编译我的模型。以下是模型:
层 (类型) 输出形状 参数 #
================================================================= lambda_7 (Lambda) (None, 499, 22) 0
_________________________________________________________________ cu_dnnlstm_14 (CuDNNLSTM) (None, 300) 388800
_________________________________________________________________ repeat_vector_12 (RepeatVect (None, 499, 300) 0
_________________________________________________________________ cu_dnnlstm_15 (CuDNNLSTM) (None, 499, 50) 70400
_________________________________________________________________ time_distributed_6 (TimeDist (None, 499, 22) 1122
================================================================= 总参数: 460,322 可训练的参数: 460,322 不可训练的参数: 0
lambda层将一个形状为(1,499)的填充序列转换为具有22个可能值的onehot。然后我通过一个编码CuDNNLSTM,一个重复向量,另一个CuDNNLSTM和一个具有softmax激活的时间分布密集层来传递它。
我使用:
model.compile('rmsprop', 'sparse_categorical_crossentropy', metrics=['acc'])
并且:
model.fit(s_min_one, s_min_one,
batch_size=batchS,
epochs=epochS,
verbose = 1,
shuffle=True)
这给我带来了错误。
我使用了稀疏分类,使我的数据可以在整数格式下取值介于0到21之间(针对22个特征)。我不明白为什么该错误会对任何事物期望维度为1。就好像它想让我翻转列和行一样?