我正在尝试训练一个非常简单的神经网络来对数据样本进行分类,其中一些类别必然会接连出现——这就是为什么我决定让输入数据以批次的形式进入网络。使用Tensorflow,显然你有多种声明批次的方式,例如tf.data.Dataset.batch
(我目前使用Adam优化器进行训练)和tf.train.batch
。它们的区别在哪里?这些方法应该一起使用还是互斥的?如果是后者:我应该选择哪一个?
回答:
tf.train.*
是一个较旧的API,比tf.data.*
更复杂且更容易出错(你需要自己管理队列、线程运行器、协调器等)。对于你所述的目的(批处理数据并将其输入模型),这两者在功能上是等效的,因为它们都能达到你的目标。然而,你应该考虑使用tf.data
,因为它既更易于使用,又是当前推荐的处理输入数据集的方式。