我希望在 TensorFlow 2.0 中编写一个函数,而不是在每次训练迭代之前打乱数据及其目标标签。
假设我有两个 numpy 数据集 X 和 y,代表用于分类的数据和标签。我怎样才能同时洗牌?
使用 sklearn
非常简单:
from sklearn.utils import shuffle
X, y = shuffle(X, y)
我如何在 TensorFlow 2.0 中做同样的事情?我在文档中找到的唯一工具是 tf.random.shuffle ,但它一次只需要一个对象,我需要喂两个。
最佳答案
与其打乱 x 和 y ,打乱它们的索引要容易得多,所以首先生成一个索引列表
indices = tf.range(start=0, limit=tf.shape(x_data)[0], dtype=tf.int32)
然后打乱这些索引
idx = tf.random.shuffle(指数)
并使用这些索引来打乱数据
x_data = tf.gather(x_data, idx)
y_data = tf.gather(y_data, idx)
你会打乱数据
关于python - 如何使用 TensorFlow 2.0 打乱两个 numpy 数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57990372/