首页 > 解决方案 > 每次执行第二个代码块时获取不同数组的原因

问题描述

dataset=tf.keras.preprocessing.image_dataset_from_directory(
  "PlantVillage",
  shuffle=True,
  image_size=(IMAGE_SIZE,IMAGE_SIZE),
  batch_size=BATCH_SIZE
)

for image_batch,label_batch in dataset.take(1):
    print(image_batch[1])

当我每次执行第二个代码块时,系统正在打印不同的数组。有人可以让我知道原因吗?我认为这是因为第一个块中的 shuffle=True 语句。如果我错了,请纠正我

标签: pythontensorflowkerasdeep-learning

解决方案


设置 shuffle=True 将随机化数据顺序。查看文档,您可以设置 shuffle=False 以按字母数字对数据进行排序,或使用种子来确保您的随机播放保持不变,即

dataset=tf.keras.preprocessing.image_dataset_from_directory(
  "PlantVillage",
  shuffle=True,
  seed=40,
  image_size=(IMAGE_SIZE,IMAGE_SIZE),
  batch_size=BATCH_SIZE
)

推荐阅读