我正在使用tensorflow训练深度CNN来进行围棋的移动预测。我创建的数据集包括100,000个二进制数据文件,每个数据文件对应一场录制的比赛,并且包含大约200个训练样本(每个游戏中的一个移动)。我认为在使用SGD时,获得良好的混合非常重要。我希望我的批次包含来自不同游戏和不同阶段的样本。例如,仅从100个文件的开头读取一个样本并进行洗牌是不好的,因为这些100个样本都是每场比赛的第一步。
我已经阅读了有关从文件中提供数据的教程,但我不确定它们提供的库是否符合我的需求。如果我要自己编写代码,我基本上会初始化一堆指向每个文件内随机位置的文件指针,然后从随机文件中获取样本,相应地递增文件指针。
因此,我的问题是,Tensorflow是否提供这种功能,还是编写自己的代码来创建批次更容易?
我已经阅读了有关从文件中提供数据的教程,但我不确定它们提供的库是否符合我的需求。如果我要自己编写代码,我基本上会初始化一堆指向每个文件内随机位置的文件指针,然后从随机文件中获取样本,相应地递增文件指针。
因此,我的问题是,Tensorflow是否提供这种功能,还是编写自己的代码来创建批次更容易?
shuffle=True
的string_input_producer将产生完美混合,而无需进行批次洗牌? - TimZaman