代码之家  ›  专栏  ›  技术社区  ›  gogasca

张量流估计洗牌

  •  0
  • gogasca  · 技术社区  · 7 年前

    this

    tf.data.Dataset.shuffle 方法使用固定大小的缓冲区在项通过时洗牌。在这种情况下 buffer_size 大于数据集中的示例数,确保数据完全被洗牌(Iris数据集仅包含150个示例)。

    当我要洗牌和分割数据集来创建训练数据时,洗牌方法是在特征工程之外创建的吗?以下优点是什么: "to shuffle the items as they pass through".

    1 回复  |  直到 7 年前
        1
  •  1
  •   kvish    7 年前

    repeat

    dataset1 = tf.data.Dataset.range(5).shuffle(5).repeat(3).make_one_shot_iterator().get_next()
    dataset2 = tf.data.Dataset.range(5).shuffle(5, reshuffle_each_iteration=False).repeat(3).make_one_shot_iterator().get_next()
    
    sess = tf.Session()
    
    for i in range(15):
        d1, d2 = sess.run([dataset1, dataset2])
        print("Dataset1: {}, Dataset2:, {}".format(d1, d2))
    

    结果:

    Dataset1: 0, Dataset2:, 3
    Dataset1: 3, Dataset2:, 0
    Dataset1: 4, Dataset2:, 1
    Dataset1: 1, Dataset2:, 2
    Dataset1: 2, Dataset2:, 4
    Dataset1: 1, Dataset2:, 3
    Dataset1: 2, Dataset2:, 0
    Dataset1: 3, Dataset2:, 1
    Dataset1: 4, Dataset2:, 2
    Dataset1: 0, Dataset2:, 4
    Dataset1: 3, Dataset2:, 3
    Dataset1: 0, Dataset2:, 0
    Dataset1: 4, Dataset2:, 1
    Dataset1: 1, Dataset2:, 2
    Dataset1: 2, Dataset2:, 4
    

    如您所见,第二个数据集正在重复它洗牌一次的元素,而第一个数据集在每次遍历数据集时都洗牌数据。

    推荐文章