问题描述
我想用 keras 从 x 射线图像构建一个 covid-19 cnn 探测器,我的输入形状是 (224,244,3)
但我不知道如何将我的数据集图像更改为该大小无法为此找到特定资源
我也看了很多 YouTube 视频,所有视频都为 X 射线照片(输入形状)设置了 3 个通道,而它是黑白的,任何人都可以解释
我正在使用 google colab
解决方法
试试这个:
我假设您的数据集图像位于文件夹 images
import pandas as pd
import numpy as np
import os,cv2
for image in os.listdir(os.path.join("images")):
img = cv2.imread(os.path.join("images",image))
img = cv2.resize(img,(224,224,3))
cv2.imwrite(os.path.join("images",image),img)
,
试试这个,
我假设您有不同形状的图像,现在为了达到 (224,3) 的大小,您需要按照以下步骤操作。
第一步
在变量中定义形状大小
IMG_SHAPE = 224
第 2 步
如果您使用的是 flow_from_directory
方法,则传递 target_size
如下所示。
image_gen_train = ImageDataGenerator(rescale = 1./255,rotation_range = 40,width_shift_range=0.2,height_shift_range=0.2,shear_range = 0.2,zoom_range = 0.2,horizontal_flip = True,fill_mode = 'nearest')
train_data_gen = image_gen_train.flow_from_directory(batch_size = batch_size,directory = train_dir,shuffle= True,target_size = (IMG_SHAPE,IMG_SHAPE),class_mode = "categorical")
第 3 步
现在在模型架构的卷积层中通过 input_shape
如下。
classifier = tf.keras.Sequential([
tf.keras.layers.Conv2D(16,(3,3),activation='relu',input_shape=(IMG_SHAPE,IMG_SHAPE,3)),tf.keras.layers.MaxPooling2D(2,2),tf.keras.layers.Conv2D(32,activation='relu'),tf.keras.layers.Conv2D(64,tf.keras.layers.Conv2D(128,tf.keras.layers.Dropout(0.32),tf.keras.layers.Flatten(),tf.keras.layers.Dense(1024,activation= 'relu'),tf.keras.layers.Dense(3,activation = "softmax")
])