我试图为此链接中提供的图像创建LeNet5。
为了上传训练集和测试集,我使用
tf.keras.preprocessing.image_dataset_from_directory:
train_set = image_dataset_from_directory('Linnaeus_5_32X32/train',
labels='inferred',
label_mode = 'categorical',
color_mode = 'grayscale',
batch_size=batch_size,
image_size = (image_rows,image_cols),
shuffle=True,
seed=1997)
test_set = image_dataset_from_directory('Linnaeus_5_32X32/test',
labels='inferred',
label_mode = 'categorical',
color_mode = 'grayscale',
batch_size = batch_size,
image_size = (image_rows,image_cols),
shuffle=True,
seed=1997)
这应该返回一个tf.data.Dataset
对象,它是一个元组(图像,标签),其中图像具有形状(batch_size,image_size[0],image_size[1],num_channels
),标签遵循格式(batch_size,num_classes)。
然而,这是我得到的,印在屏幕上:
Found 6000 files belonging to 5 classes.
Found 2000 files belonging to 5 classes.
这是正确的,因为我有6000个列车图像和2000个测试图像。但当我检查时,例如,我得到的培训集:
<BatchDataset shapes: ((None, 32, 32, 1), (None, 5)), types: (tf.float32, tf.float32)>
也就是说,batch_size=没有,而应该是6000。
这是什么意思?我怎样才能修好它?
批量大小和总训练样本之间存在差异。如果您有6000张图像用于培训,则可以使用1批6000号图像、100批60号图像等来培训您的模型。
batch\u size=None
基本上意味着您的型号可以接受任何批次大小。批量大小在培训期间设置。在Keras中,您可以将batch_size
设置为model的参数。fit()
。Keras将根据您指定的批次大小
有关fi
参数的更多信息,您可以访问此处