Tensorflow.batch没有正确地分离张量



我有一个形状数组(16359444(

array([[ 9.15527344e-05, -6.10351562e-05,  6.10351562e-05, ...,
1.01928711e-02,  7.92236328e-02, -2.69470215e-02]])

并将它们转换为张量切片

stream = tf.data.Dataset.from_tensor_slices(reshaped_data)

但当我批量生产时

seqs = stream.batch(1000, drop_remainder=True)

它返回

<BatchDataset shapes: (1000, 6354944), types: tf.float64>

当它应该有的形状时

(1000, 6354)

您可以在创建数据集之前重塑数据:

r = tf.reshape(a[ : , :6354000 ], (1000, 6354))
stream = tf.data.Dataset.from_tensor_slices(r)
seqs = stream.batch(1000) #(1000,6354)

您应该设置

drop_remainder=错误

如文件所述生产较小批次:

批次:

批(batch_size,drop_remainder=False,num_parallel_alls=无,determinent=无)

结果元素的组件将具有一个额外的外部维度,该维度将为batch_size(或者,如果batch_sze没有将输入元素的数量N平均除以,并且drop_remainder为False,则最后一个元素为N%batch_ssize(。如果程序依赖于具有相同外部维度的批,则应将drop_remainder参数设置为True,以防止生成较小的批。

相关内容

  • 没有找到相关文章

最新更新