繁体   English   中英

ValueError:层“max_pooling1d”的输入 0 与层不兼容:预期 ndim=3,发现 ndim=4。 收到完整形状:(无,51644、29、32)

[英]ValueError: Input 0 of layer "max_pooling1d" is incompatible with the layer: expected ndim=3, found ndim=4. Full shape received: (None, 51644, 29, 32)

我正在构建一个 CNN 1D model 用于二进制分类,我使用的文件是 csv 文件我该如何解决这种错误?....提前致谢

这是我的代码: 在这里输入图片描述 在这里输入图片描述

错误是:ValueError:层“max_pooling1d”的输入 0 与层不兼容:预期 ndim=3,发现 ndim=4。 已收到完整形状:(无、51644、29、32)在此处输入图片描述

您的数据是 2D(类似图片),而您正在尝试使用接受 1D 对象(序列)的 model。 您需要使用 model 来接受您想要使用的数据类型,或者您需要转换您的数据以适合您的 model。

input_shape(train_shape[0], train_shape[1], 1)更改为(train_shape[1], 1) 当您使用Conv1D时,假设您正在使用序列数据。 所以在这种情况下train_shape[0]batch_sizetrain_shape[1]number of time-stepssequence length ,最后一个1是每个时间戳number of features

重要的是, keras不需要您输入batch_size ,它自动默认为None并且输入形状自动变为(None, train_shape[1], 1) ,这样它就可以使用任何批量大小,所以不需要输入第一个维度。 但是,如果您想自己输入batch size ,请使用batch_input_shape而不是input_shape

还要在 output 层中使用softmax function 而不是sigmoid ,因为 output 层中有多个神经元。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 ValueError: 层 max_pooling1d 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=4。 收到的完整形状:(无、128、1、32) 层 max_pooling2d 的输入 0 与层不兼容:预期 ndim=4,发现 ndim=5。 收到完整形状:[无、4、10、8、32] ValueError:层“max_pooling2d”的输入 0 与层不兼容:预期 ndim=4,发现 ndim=5。 收到的完整形状:(无、3、51、39、32) ValueError:global_average_pooling2d 层的输入 0 与该层不兼容:预期 ndim=4,发现 ndim=2。 收到的完整形状:[无,128] ValueError:层 sequential_16 的输入 0 与层不兼容:预期 ndim=5,发现 ndim=4。 收到的完整形状:[无,224、224、3] ValueError: 层双向的输入 0 与层不兼容:预期 ndim=3,发现 ndim=4。 收到的完整形状:(无、120、1024、1024) ValueError: 层序号_29 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。 收到的完整形状:[无,22] ValueError:conv3d_8 层的输入 0 与层不兼容::预期 min_ndim=5,发现 ndim=4。 收到的完整形状:[None, 4, 150, 150] ValueError: 层 lstm 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。 收到的完整形状:[无,18] ValueError:层顺序的输入 0 与层不兼容::预期 min_ndim=4,发现 ndim=3。 收到的完整形状:[None, 32, 32]
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM