【问题标题】:Tensorflow data : apply function TO batchTensorflow 数据:将函数应用于批处理
【发布时间】:2018-10-10 15:20:51
【问题描述】:

我正在使用 tf.data 从大型文本语料库中迭代批处理。

我只想将函数应用于数据子集(或批处理子集),而不是一个一个元素。 具体来说,我的数据迭代器产生 query, reply 有批次。它们都是正对,所以我只想洗牌下一批的子集(在这种情况下,只有“回复”批“)以生成随机负数。

例如, 输入:

query1 reply1

query2 reply2

query3 reply3

...

输出:

  • 正对:query1 reply1(与输入相同)
  • 否定对:query1 replyN(回复随机打乱)

当然也可以只使用 python 打乱文本,但我想使用 tf.data 来提高效率,因为数据太大了。

【问题讨论】:

    标签: python tensorflow tensorflow-datasets


    【解决方案1】:

    假设您有 queriesreplies 作为两个张量。您需要的是我认为下面的内容可以与原始批次连接。

    batch_size = 10
    def reply_shuffle(queries, replies):
       shuffled_indices = tf.random_uniform(minval=0, maxval=batch_size+1, shape=[batch_size], dtype=tf.int32)
       shuffled_replies = tf.gather_nd(replies, shuffled_indices) 
       return queries, shuffled_replies
    

    【讨论】:

      猜你喜欢
      • 2018-09-03
      • 2017-01-22
      • 2018-10-30
      • 2017-11-22
      • 1970-01-01
      • 2017-06-10
      • 2018-08-17
      • 2020-10-29
      • 2020-09-25
      相关资源
      最近更新 更多