拆分数据集 Cats_vs_dogs 以使用 tf 2.3.0 进行训练和验证

Split dataset Cats_vs_dogs to train and val with tf 2.3.0

我尝试使用拆分函数拆分 Cats_vs_dogs 数据集,但我无法检查它是否有效。当我在 train_info 和 val_info 上拨打 num_example 时,我得到了相同的号码 23262。为什么?

    dataset, info = tfds.load('cats_vs_dogs',
                              split='train',
                              shuffle_files=True,
                              as_supervised=True,
                              with_info=True
                              )                                                                                            
    ds_train, train_info = tfds.load(
                            'cats_vs_dogs',
                            split='train[:80%]',
                            shuffle_files=True,
                            as_supervised=True,
                            with_info=True
                            )
    ds_val, val_info= tfds.load(
                        'cats_vs_dogs',
                        split='train[-20%:]',
                        shuffle_files=True,
                        as_supervised=True,
                        with_info=True
                        )

    print(train_info.splits['train'].num_examples)
    print(train_info.splits['train'].num_shards)
    print(val_info.splits['train'].num_examples)
    print(val_info.splits['train'].num_shards)

我从 train_info、信息和 val_info 获得了 23262 个示例!

所以要从每个拆分中获取示例的数量,我们必须要求 train_info.splits['train[:80%]'].num_examples 和 val_info.splits['train[-20%:]'].num_examples

更好地拆分数据集,使用 tf.keras.preprocessing.image_dataset_from_directory 对我来说效果更好。