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