【问题标题】:Reason for getting different array each time when 2nd code block is executed每次执行第二个代码块时获取不同数组的原因
【发布时间】:2021-10-07 04:22:43
【问题描述】:
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 语句。如果我错了,请纠正我

【问题讨论】:

  • 是的,这就是原因。您是否尝试将其设置为 false 并查看它会做什么?

标签: python tensorflow keras deep-learning


【解决方案1】:

设置 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
)

【讨论】:

  • 感谢 Andrew Harelson 和 M.Chak 回答我的问题。如前所述,随机性是由于第一个代码块中的 shuffle=True 语句造成的。当 shuffle 设置为 false 时,输出保持不变。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-12
  • 2020-12-04
  • 2017-04-28
  • 1970-01-01
相关资源
最近更新 更多