Python 检查目标时出错:应具有形状(256,256,1),但获得具有形状(256,256,3)的数组
我正在尝试制作Python 检查目标时出错:应具有形状(256,256,1),但获得具有形状(256,256,3)的数组,python,tensorflow,keras,Python,Tensorflow,Keras,我正在尝试制作image2imagetranslation和 我的数据集由Mnist(256*256)和转换后的Mnist(256*256)组成 我真的受到了这个错误的折磨: ValueError: Error when checking target: expected conv2d_transpose_57 to have shape (256, 256, 1) but got array with shape (256, 256, 3) 我的图层看起来是这样的: ____________
image2image
translation和
我的数据集由Mnist(256*256)和转换后的Mnist(256*256)组成
我真的受到了这个错误的折磨:
ValueError: Error when checking target: expected conv2d_transpose_57 to have shape (256, 256, 1) but got array with shape (256, 256, 3)
我的图层看起来是这样的:
_______________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d_56 (Conv2D) (None, 256, 256, 17) 476
_________________________________________________________________
conv2d_57 (Conv2D) (None, 256, 256, 32) 4928
_________________________________________________________________
max_pooling2d_37 (MaxPooling (None, 128, 128, 32) 0
_________________________________________________________________
conv2d_58 (Conv2D) (None, 128, 128, 48) 13872
_________________________________________________________________
conv2d_59 (Conv2D) (None, 128, 128, 64) 27712
_________________________________________________________________
max_pooling2d_38 (MaxPooling (None, 64, 64, 64) 0
_________________________________________________________________
max_pooling2d_39 (MaxPooling (None, 32, 32, 64) 0
_________________________________________________________________
conv2d_60 (Conv2D) (None, 32, 32, 96) 55392
_________________________________________________________________
conv2d_61 (Conv2D) (None, 32, 32, 128) 110720
_________________________________________________________________
max_pooling2d_40 (MaxPooling (None, 16, 16, 128) 0
_________________________________________________________________
max_pooling2d_41 (MaxPooling (None, 8, 8, 128) 0
_________________________________________________________________
conv2d_62 (Conv2D) (None, 8, 8, 192) 221376
_________________________________________________________________
conv2d_63 (Conv2D) (None, 8, 8, 256) 442624
_________________________________________________________________
max_pooling2d_42 (MaxPooling (None, 4, 4, 256) 0
_________________________________________________________________
conv2d_64 (Conv2D) (None, 4, 4, 256) 590080
_________________________________________________________________
conv2d_transpose_50 (Conv2DT (None, 8, 8, 256) 262400
_________________________________________________________________
conv2d_transpose_51 (Conv2DT (None, 16, 16, 192) 196800
_________________________________________________________________
conv2d_transpose_52 (Conv2DT (None, 32, 32, 128) 98432
_________________________________________________________________
conv2d_transpose_53 (Conv2DT (None, 64, 64, 64) 32832
_________________________________________________________________
conv2d_transpose_54 (Conv2DT (None, 128, 128, 48) 12336
_________________________________________________________________
conv2d_transpose_55 (Conv2DT (None, 256, 256, 32) 6176
_________________________________________________________________
conv2d_transpose_56 (Conv2DT (None, 256, 256, 17) 561
_________________________________________________________________
conv2d_transpose_57 (Conv2DT (None, 256, 256, 3) 54
=================================================================
Total params: 2,076,771
Trainable params: 2,076,771
Non-trainable params: 0
_________________________________________________________________
回溯(最近一次呼叫最后一次):
idk为什么会这样
我已将最后一层的输出更改为(无、256、256、1)
我已将第一层的输入和最后一层的输出更改为(无、256、256、1)
但是它不起作用
将numpy导入为np
进口警告
导入csv
导入操作系统
从PIL导入图像
随机输入
从keras.layers导入输入
从keras导入图层
从keras.layers导入稠密
从keras.layers导入激活
从keras.layers导入展平、转换
从keras.layers导入Conv2D,向上采样2D
从keras.layers导入MaxPoolig2D,池
从keras.layers导入GlobalMapooling2D
从keras.layers导入ZeroPadding2D
从keras.layers导入平均池2D
从keras.layers导入GlobalAveragePoolig2D
从keras.layers导入批处理规范化
从keras.models导入模型
从keras.preprocessing导入图像
将keras.backend作为K导入
从keras.utils导入图层\u utils、np\u utils
从keras.utils.data\u utils导入get\u文件
从keras.applications.imagenet\u utils导入解码\u预测
从keras.applications.imagenet_utils导入预处理输入
从keras_applications.imagenet_utils import获取输入形状
从keras.engine.topology导入获取\u源\u输入
从keras.models导入顺序
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
培训文件输入='C:/Users/my/Desktop/input/train/trainig\u tfmed'
培训文件输出='C:/Users/my/Desktop/input/train/trainig\u original'
test\u file\u input='C:/Users/my/Desktop/input/test/test\u tfmed'
test\u file\u output='C:/Users/my/Desktop/input/test/test\u original'
x_列车=[]
y_train=[]
nop=np.array([None])
培训文件输入列表=os.listdir(培训文件输入)
test\u file\u input\u list=os.listdir(test\u file\u input)
对于范围内的i(1,len(培训文件输入列表)+1):
input_filename=training_file_input+'/tfmed_trainig_'+str(i)+'.jpg'
input\u image=image.open(输入\u文件名)
输入图像=输入图像。转换(“RGB”)
input_image=input_image.resize((256,256),image.ANTIALIAS)
input\u image=np.array(input\u image,dtype=np.float32)
x_列附加(输入_图像)
#x_train=np.append(nop,输入_图像)
输出\文件名=训练\文件\输出+'/original\训练\文件+'+str(i)+'.jpg'
output\u image=image.open(output\u文件名)
输出图像=输出图像。转换(“RGB”)
output_image=output_image.resize((256,256),image.ANTIALIAS)
output\u image=np.array(output\u image,dtype=np.float32)
y_序列追加(输出_图像)
#y\u序列=np.append(nop,输入\u图像)
##加载测试文件
x_检验=[]
y_检验=[]
对于范围内的i(1,len(测试文件输入列表)+1):
input_filename=test_file_input++'/tfmed_test_'+str(i)+'.jpg'
input\u image=image.open(输入\u文件名)
输入图像=输入图像。转换(“RGB”)
input_image=input_image.resize((256,256),image.ANTIALIAS)
input\u image=np.array(input\u image,dtype=np.float32)
x_test.append(输入_图像)
#x_test=np.append(nop,输入_图像)
output_filename=test_file_output+/original_test_'+str(i)+'.jpg'
output\u image=image.open(output\u文件名)
输出图像=输出图像。转换(“RGB”)
output_image=output_image.resize((256,256),image.ANTIALIAS)
output\u image=np.array(output\u image,dtype=np.float32)
y_test.append(输出_图像)
#y_test=np.append(nop,输入_图像)
#
列车=np.asarray(列车)
y_列车=np.asarray(y_列车)
x_检验=np.asarray(x_检验)
y_检验=np.asarray(y_检验)
打印('模型加载')
模型=顺序()
添加(Conv2D(17,(3,3),padding='same',strips=(1,1),activation='relu',input_shape=(256,256,1)))
打印(型号输出形状)
add(Conv2D(32,(3,3),padding='same',strips=(1,1),activation='relu'))
打印(型号输出形状)
add(pooling.maxpoolig2d(pool_size=(2,2),strips=(2,2)))
打印(型号输出形状)
add(Conv2D(48,(3,3),padding='same',strips='1,1',activation='relu'))
打印(型号输出形状)
add(Conv2D(64,(3,3),padding='same',strips='1,1',activation='relu'))
打印(型号输出形状)
add(pooling.maxpoolig2d(pool_size=(2,2),strips=(2,2)))
打印(型号输出形状)
add(pooling.maxpoolig2d(pool_size=(2,2),strips=(2,2)))
打印(型号输出形状)
add(Conv2D(96,(3,3),padding='same',strips='1,1',activation='relu'))
打印(型号输出形状)
add(Conv2D(128,(3,3),padding='same',strips='1,1',activation='relu'))
打印(型号输出形状)
add(pooling.maxpoolig2d(pool_size=(2,2),strips=(2,2)))
打印(型号输出形状)
add(pooling.maxpoolig2d(pool_size=(2,2),strips=(2,2)))
打印(型号输出形状)
add(Conv2D(192,(3,3),padding='same',strips=(1,1),activation='relu'))
打印(型号输出形状)
add(Conv2D(256,(3,3),padding='same',strips='1,1',activation='relu'))
打印(型号输出形状)
add(pooling.maxpoolig2d(pool_size=(2,2),strips=(2,2)))
打印(型号输出形状)
add(Conv2D(256,(3,3),padding='same',strips='1,1',activation='relu'))
打印(型号输出形状)
add(conv2dtranpse(256,内核大小=(2,2),步幅=(2,2),激活=(relu'))
打印(型号输出形状)
add(conv2dtranspse(192,内核大小=(2,2),步幅=(2,2),激活=(relu'))
打印(型号输出形状)
模式