当图像尺寸为(2048 * 1536)时,我应该在顺序模型的第一层中采用什么输入形状

时间:2019-08-17 18:15:42

标签: python keras deep-learning dataset

我有一个图像数据集,每个图像的尺寸为=(2048,1536)。在ImageDataGenerator以从目录中获取数据时,我使用了相同的目标大小,即(2048,1536),但同时将顺序模型设为第一层,我应该使用什么输入形状?它与(2048,1536)相同还是可以采用(224,224)之类的任意随机形状。

3 个答案:

答案 0 :(得分:2)

您可能应该通过制作大小为3145728(2048 * 1536)的向量来展平输入数据。如果您的数据位于一个numpy数组中,则可以使用np.flatten()numpy flatten)。

然后您的第一层可以具有与此向量相同的形状。

答案 1 :(得分:1)

我将首先使用Group1 Group2 Rate A M 12 B N 10 B M 18 B N 14 A N 14 MeanA 13 MeanM 15 MeanB 14 MeanN 12.66 SDA 1.414213562 SDM 4.242640687 SDB 4 SDN 2.309401077调整图像的大小。您真的需要这么大的图像中的所有信息吗?

对于顺序模型,例如: cv2.resize()

其中 model = models.Sequential() model.add(layers.Conv2D(32,(3,3), activation='relu', input_shape = (height,width, ndim))) ...height代表您输入的图像尺寸,width代表灰度,ndim = 1代表彩色图像。

答案 2 :(得分:0)

第一层(即输入层)应该是数据集中要素的数量。关于图像,每个像素被认为是特征。因此,在您的情况下,图像尺寸为(2048,1536),则需要将其展平以获取像素的总数(即特征)。如果是灰度图像,则为(2048 * 1536 * 1);如果是彩色图像,则为(2048 * 1536 * 3)。

此外,您在创建顺序模型时使用TensorFlow / Keras API中的以下代码,它将照顾您的输入层大小

tf.keras.models.Sequential([tf.keras.layers.Flatten(),
                       tf.keras.layers.Dense(128,activation=tf.nn.relu) #1st hidden layer
                       tf.keras.layers.Dense(128,activation=tf.nn.relu) #2nd hidden layer
                       tf.keras.layers.Dense(2,activation=tf.nn.softmax)])#output layer