Tensorflow 2.0数据集批处理工作不正常
Tensorflow 2.0数据集api的批处理未按我预期的方式工作 我制作了一个这样的数据集Tensorflow 2.0数据集批处理工作不正常,tensorflow,tensorflow2.0,Tensorflow,Tensorflow2.0,Tensorflow 2.0数据集api的批处理未按我预期的方式工作 我制作了一个这样的数据集 self.train_dataset = tf.data.Dataset.from_generator(generator=train_generator, output_types=(tf.float32, tf.float32), output_shapes=(tf.TensorShape([6]), tf.TensorShape([]))) 这将生成datasetv1适配器形状:((6,),(
self.train_dataset = tf.data.Dataset.from_generator(generator=train_generator, output_types=(tf.float32, tf.float32), output_shapes=(tf.TensorShape([6]), tf.TensorShape([])))
这将生成datasetv1适配器形状:((6,),()),类型:(tf.float32,tf.float32),
对于这个数据集,我应用了tf.data.dataset中的批处理函数
self.train_dataset.batch(1024)
生成DatasetV1Adapter形状:((None,6),(None,)、类型:(tf.float32,tf.float32),更改批大小根本没有帮助
根据该批次的官方描述
结果元素的组件将有一个额外的外部维度,即batch_size(如果batch_size未将输入元素的数量N平均分割,且drop_余数为False,则最后一个元素的batch_size为N%batch_size)。如果您的程序依赖于具有相同外部尺寸的批,则应将drop_rements参数设置为True,以防止生成较小的批
我认为这个函数的工作方式是生成[batch,6],[batch],但效果不好
我最初使用pytorch,最近开始使用TF2.0,需要一些关于正确批处理的帮助。提前感谢。您可以通过设置
train_dataset = train_dataset.batch(2, drop_remainder=True)
默认情况下,drop_rements=False
。在这种情况下,第一个维度必须None
,因为(很可能)在数据集末尾将有一批
元素,因为样本数不能被batch\u size
整除