根据 CPU 上的批量大小、哈希桶大小、内存等调整 Tensorflow 估计器?
Posted
技术标签:
【中文标题】根据 CPU 上的批量大小、哈希桶大小、内存等调整 Tensorflow 估计器?【英文标题】:Tuning Tensorflow Estimators based on batch size, hash bucket size, memory etc on CPU? 【发布时间】:2019-08-07 03:11:03 【问题描述】:我们正在测试各种估计器,例如 LinearEstimator、DNNClassifier 等。现在我们仅限于使用 CPU 进行训练,并且我们正在测试参数和杠杆,例如
CPU: 8~32 cpu's 内存:16~48 GB 批处理/缓冲区大小(dataset.batch(n)):n=128~512 哈希bucket_size:10,000 ~ 500,000 线程数:Tensorflow 默认值,应该是逻辑核心数 优化器:GradientDescent、FtrlOptimizer结果:每秒全局步数 * batch_size 约为 20~50
所以我们通过 Tensorboard 每秒的全局步数 * bucket_size 大约为 20~50,增加 CPU 和内存有其限制。
关于优化器及其配置,我们看到了类似的结果。
我们是否做错了什么,还有其他我们可以使用的杠杆吗?您可以优化模型训练方法的程度是否有限制,我们是否应该转向 GPU 并利用其矩阵乘法效率?
【问题讨论】:
【参考方案1】:您可以尝试使用 Dataset API 优化您的输入管道。考虑将您的数据转换为 tfrecord,它可以带来实质性的改进。如果您有多个 CPU,则可以设置一个集群。但这在很大程度上取决于您拥有的数据。看看吧
https://www.tensorflow.org/guide/performance/datasets
https://www.tensorflow.org/guide/performance/overview
【讨论】:
以上是关于根据 CPU 上的批量大小、哈希桶大小、内存等调整 Tensorflow 估计器?的主要内容,如果未能解决你的问题,请参考以下文章