Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查Keras中的输入数组形状?_Keras - Fatal编程技术网

如何检查Keras中的输入数组形状?

如何检查Keras中的输入数组形状?,keras,Keras,这是模型 model = Sequential() model.add(Reshape((3,150,150), input_shape=(150,150,3))) model.add(ZeroPadding2D((1,1))) print(model.output_shape) model.add(Conv2D(64,(3,3), activation='relu')) print model.output_shape (None, 5, 152, 150) (None, 3, 150,

这是模型

model = Sequential()
model.add(Reshape((3,150,150), input_shape=(150,150,3)))
model.add(ZeroPadding2D((1,1)))
print(model.output_shape)
model.add(Conv2D(64,(3,3), activation='relu'))
print model.output_shape


(None, 5, 152, 150)
(None, 3, 150, 64)
当我尝试输入数据时,我得到了这个

ValueError: Error when checking target: expected conv2d_35 to have 4 dimensions, but got array with shape (32, 1)
输出形状似乎没有给我层看到的东西。输出形状打印正确的4维(无(批大小约为32),3150,64)时,图层显示(32,1)


我做错了什么?为什么这个形状是(32,1)?

您的数据没有4维,您的数据有形状(32,1)

另一方面,您的模型需要具有4个维度的数据:(无、3150、64)

模型的输出形状必须与数据的形状相同(Y)


使用model.summary一次查看所有形状

这会显示图层的形状,但不会显示数据本身的形状。我正在传递图像。他们怎么可能是(32,1)?这就是为什么我想在传入数据数组时检查它。32是批量大小,但为什么只减少到1?哦,也许这些是输出——y而不是X。是的,这是输出,keras称之为“目标”。你需要让你的模型以这个形状结束。例如,可以通过在末尾添加一个
flatte()
和一个“稠密(1)”层来实现。(注意激活功能,它们也必须与您的目标匹配)。啊,好的。是否有方法在输入目标数据时检查其形状?这样我就可以确认它与模型的输出形状匹配了?你是如何输入数据的?您拥有的输出数据的形状为(32,1)。如果它是一个numpy数组,你只需要执行“mydata.shape”就可以了。