Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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
Image processing 拟合方法中的keras错误:期望模型_2具有形状(None,252,252,1),但得到具有形状(300,128,128,3)的数组_Image Processing_Machine Learning_Keras_Autoencoder - Fatal编程技术网

Image processing 拟合方法中的keras错误:期望模型_2具有形状(None,252,252,1),但得到具有形状(300,128,128,3)的数组

Image processing 拟合方法中的keras错误:期望模型_2具有形状(None,252,252,1),但得到具有形状(300,128,128,3)的数组,image-processing,machine-learning,keras,autoencoder,Image Processing,Machine Learning,Keras,Autoencoder,我正在为使用autoencoder的一类分类构建一个图像分类器 运行此模型时,我通过行自动编码器\u model.fit得到此错误: ValueError:检查目标时出错:预期模型_2具有形状(None,252,252,1),但获得具有形状(300,128,128,3)的数组 num_of_samples=img_data.shape[0] labels=np.one((样本数),dtype='int64') 标签[0:376]=0 名称=['cats'] 输入\u shape=img\u数据[

我正在为使用autoencoder的一类分类构建一个图像分类器

运行此模型时,我通过行
自动编码器\u model.fit
得到此错误:

ValueError:检查目标时出错:预期模型_2具有形状(None,252,252,1),但获得具有形状(300,128,128,3)的数组

num_of_samples=img_data.shape[0]
labels=np.one((样本数),dtype='int64')
标签[0:376]=0
名称=['cats']
输入\u shape=img\u数据[0]。形状
X_序列,X_测试=序列测试分割(img_数据,测试尺寸=0.2,随机状态=2)
输入传感器=输入(输入形状)
x=Conv2D(16,(3,3),激活='relu',填充='same')(输入传感器)
x=Conv2D(8,(3,3),activation='relu',padding='same')(x)
x=MaxPooling2D((2,2),padding='same')(x)
x=Conv2D(8,(3,3),activation='relu',padding='same')(x)
encoded_data=MaxPooling2D((2,2),padding='same')(x)
编码器\模型=模型(输入传感器,编码\数据)
#此时,表示为(4,4,8),即128维
编码输入=输入((4,4,8))
x=Conv2D(8,(3,3),激活='relu',填充='same')(编码输入)
x=上采样2D((2,2))(x)
x=Conv2D(8,(3,3),activation='relu',padding='same')(x)
x=上采样2D((2,2))(x)
x=Conv2D(16,(3,3),activation='relu',padding='same')(x)
x=上采样2D((2,2))(x)
解码数据=Conv2D(1,(3,3),激活class='sigmoid',填充class='same')(x)
解码器\模型=模型(编码\输入,解码\数据)
自动编码器输入=输入(输入形状)
编码=编码器\模型(自动编码器\输入)
解码=解码器\模型(编码)
自动编码器\模型=模型(自动编码器\输入,解码)
自动编码器\u model.compile(优化器='adadelta',在此处输入代码'loss='binary\u crossentropy')
自动编码器\u型号。配合(X\u系列,X\u系列,
纪元=50,
批次大小=32,
验证数据=(X检验,X检验),
回调=[TensorBoard(log_dir='/tmp/autoencoder')])

当自动编码器尝试重新创建原始图像时,由于编码器中只有两个
MaxPool2D
层,解码器中只有三个
上采样2D
层,您似乎正在重建与原始图像尺寸不同的图像

当自动编码器尝试评估重建损失时,由于尺寸未匹配,它会遇到错误

将此用于编码器,并告知其是否有效:

inputTensor = Input(input_shape)
x = Conv2D(16, (3, 3), activation='relu', padding='same')(inputTensor)
x = MaxPooling2D((2, 2), padding='same')(x)
x = Conv2D(8, (3, 3), activation='relu', padding='same')(x)
x = MaxPooling2D((2, 2), padding='same')(x)
x = Conv2D(8, (3, 3), activation='relu', padding='same')(x)
encoded_data = MaxPooling2D((2, 2), padding='same')(x)

encoder_model = Model(inputTensor,encoded_data)

您可以添加示例数据或至少添加数据的维度吗?输入_shape-(128,128,3),img_data.shape-(376,128,128,3)请运行一个新的脚本或内核,然后1)更新确切的错误消息(仍然是
model_2
还是其他什么?)和2)包括
自动编码器_model.summary()的输出,请参阅@desertnaut的注释我想澄清我的疑问,解码器的输出为灰度??两者都不是-这是自动编码器的定义-请参阅条目和