gpt4 book ai didi

image - Tensorflow - 洗牌和分割图像和标签的数据集

转载 作者:行者123 更新时间:2023-11-30 08:46:21 24 4
gpt4 key购买 nike

刚刚接触 Tensorflow,我正在使用神经网络对图像进行分类。我有一个包含形状 [N, 128, 128, 1] 的图像(N 个图像 128x128,1 个 channel )的 Tensor 和一个 Tensor 形状为 [N],包含图像的标签。

我想将其全部打乱,并将其拆分为训练张量和测试张量(假设 80%-20%)。我没有找到一种方法来“压缩”张量以将每个图像与其标签相关联(以便以相同的方式对图像和标签进行洗牌)。是否可以 ?如果没有,我怎样才能实现洗牌/拆分工作?

感谢您的帮助!

最佳答案

只需使用相同的“seed”关键字参数值,例如在函数中seed=8 tf.random_shuffle对于标签和数据。

ipdb> my_data = tf.convert_to_tensor([[1,1], [2,2], [3,3], [4,4], 
[5,5], [6,6], [7,7], [8,8]])
ipdb> my_labels = tf.convert_to_tensor([1,2,3,4,5,6,7,8])
ipdb> sess.run(tf.random_shuffle(my_data, seed=8))
array([[5, 5],
[3, 3],
[1, 1],
[7, 7],
[2, 2],
[8, 8],
[4, 4],
[6, 6]], dtype=int32)
ipdb> sess.run(tf.random_shuffle(my_labels, seed=8))
array([5, 3, 1, 7, 2, 8, 4, 6], dtype=int32)

编辑:如果您需要在运行时进行随机洗牌,例如,批处理将被随机但不同地洗牌,您可以使用这样的技巧:

# each time shuffling pattern will be differend

# for now, it works
indicies = tf.random_shuffle(tf.range(8))
params = tf.convert_to_tensor([111, 222, 333, 444, 555, 666, 777, 888])
sess.run(tf.add(tf.gather(params, indicies), tf.gather(params, indicies) * 1000))
> array([555555, 444444, 666666, 222222, 111111, 888888, 333333, 777777], dtype=int32)

由相同数字组成的数字表明,聚集<-indicies 采用相同的种子值

关于image - Tensorflow - 洗牌和分割图像和标签的数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44500910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com