python - 如何在灰度图像集上创建 keras conv2d 层
问题描述
我创建了这个 NN
#Encoder
encoder_input = Input(shape=(1,height, width))
encoder_output = Conv2D(64, (3,3), activation='relu', padding='same', strides=2)(encoder_input)
encoder_output = Conv2D(128, (3,3), activation='relu', padding='same')(encoder_output)
encoder_output = Conv2D(128, (3,3), activation='relu', padding='same', strides=2)(encoder_output)
encoder_output = Conv2D(256, (3,3), activation='relu', padding='same')(encoder_output)
encoder_output = Conv2D(256, (3,3), activation='relu', padding='same', strides=2)(encoder_output)
encoder_output = Conv2D(512, (3,3), activation='relu', padding='same')(encoder_output)
encoder_output = Conv2D(512, (3,3), activation='relu', padding='same')(encoder_output)
encoder_output = Conv2D(256, (3,3), activation='relu', padding='same')(encoder_output)
#Decoder
decoder_output = Conv2D(128, (3,3), activation='relu', padding='same')(encoder_output)
decoder_output = UpSampling2D((2, 2))(decoder_output)
decoder_output = Conv2D(64, (3,3), activation='relu', padding='same')(decoder_output)
decoder_output = UpSampling2D((2, 2))(decoder_output)
decoder_output = Conv2D(32, (3,3), activation='relu', padding='same')(decoder_output)
decoder_output = Conv2D(16, (3,3), activation='relu', padding='same')(decoder_output)
decoder_output = Conv2D(2, (3, 3), activation='tanh', padding='same')(decoder_output)
decoder_output = UpSampling2D((2, 2))(decoder_output)
model = Model(inputs=encoder_input, outputs=decoder_output)
model.compile(optimizer='adam', loss='mse' , metrics=['accuracy'])
clean_images = model.fit(train_images,y_train_red, epochs=200)
和火车图像是由
train_images = np.array([ImageOperation.resizeImage(cv2.imread(train_path + str(i) + ".jpg"), height, width) for i in
range(train_size)])
y_train_red = [img[:, :, 2]/255 for img in train_images]
train_images = np.array([ImageOperation.grayImg(item) for item in train_images])
当我执行代码时,我收到以下错误
检查输入时出错:预期 input_1 有 4 个维度,但得到了形状为 (10, 200, 200) 的数组如何解决?
解决方案
您的图像是 2D(高度 x 宽度),而它需要 3D 图像。重塑您的图像以添加其他尺寸,例如,
train_images = train_images.reshape(train_size, height, width, 1)
推荐阅读
- visual-studio - Frameworks\Microsoft.AspNetCore.App 上方的黄色三角形
- selenium - 显示错误 - 未知错误:DevToolsActivePort 文件不存在 - 它是电子应用程序(我使用的是 Windows 操作系统)
- java - 用户输入 - 扫描仪跳过用户输入
- google-apps-script - 使用 GAS,如何在将 TAB 从工作表复制到文档时保持列宽?
- linux - netfilter 钩子没有检索完整的数据包
- node.js - (节点:12728)UnhandledPromiseRejectionWarning:TypeError:无法读取 null 的属性“名称”
- c++ - 处理输入流运算符中的无效输入 >>
- guidewire - 产品 xml 文件和 pcf 文件在 Policycenter 中是如何连接的?
- c# - 项目部署后拖放到 DataGrid 中不起作用
- angular - 访问静态成员函数中的角度全局变量(在服务中)