python - 如何使用 TensorFlow 2.0 打乱两个 numpy 数据集?

标签 python numpy tensorflow tensorflow2.0

我希望在 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/

相关文章:

python - np.multiply 如何工作?

python - 从 numpy 数组中删除连续的 RGB 值

docker - 构建较旧的Tensorflow 2.x

Python Asyncio & Websocket 如何避免全局变量?

Python:使用两个列表创建一个字典

python - 将 Pandas Dataframe 转换为 numpy 数组

python - Tensorflow 3D 张量乘以 2D 矩阵

python - 反向传播算法陷入训练 AND 函数的困境

python - Pyglet OpenGL 设置雾颜色

python - Flask 日志记录错误 : "TypeError findCaller() takes from 1 to 2 position arguments but 3 were given" on app. 运行(Python 3.8)