kwo*_*sin 4 python machine-learning computer-vision deep-learning tensorflow
在 Tensorflow 中,似乎可以在训练期间、从原始图像(或数据)创建批次时或图像已经静态时进行预处理。鉴于理论上,预处理应该花费大致相等的时间(如果它们使用相同的硬件完成),在训练之前进行数据预处理(甚至数据增强)是否比在实时训练期间有任何实际缺点?
作为一个附带问题,如果在训练期间不进行数据增强,甚至可以在 Tensorflow 中进行吗?
与实时训练相比,在训练前进行数据预处理(甚至数据增强)是否有任何实际缺点?
是的,有优点(+++)和缺点(---):
训练前的预处理:
训练期间的预处理(“实时”):
一些具体方面进行了详细讨论:
(1) 使用训练前生成的数据集重现“使用相同数据”的实验有点简单。然而,这可以通过存储用于实时数据生成的种子来优雅地解决(甚至更多!)。
(2):预处理的训练运行时间:有一些方法可以避免昂贵的预处理管道妨碍您的实际训练。Tensorflow 本身建议填充Queues很多(CPU-),threads以便数据生成可以独立地跟上 GPU 数据消耗。您可以在输入管道性能指南中阅读有关此内容的更多信息。
(3):张量流中的数据增强
作为一个方面的问题,可以增强数据甚至可以在Tensorflow做,如果没有完成
时(我想你的意思) 前培训?
是的,tensorflow 提供了一些增强的功能。在标量/向量(或更多维数据)的值增加方面,您可以轻松地自己构建一些东西tf.multiply或其他基本的数学运算。对于图像数据,实现了几个操作(参见tf.image和tf.contrib.image),它们应该涵盖很多增强需求。
就我个人而言,我总是尝试使用实时预处理,因为生成(可能很大)数据集感觉很笨重。但它是完全可行的,我已经多次看到它并且(如你所见)它绝对有它的优势。
| 归档时间: |
|
| 查看次数: |
1905 次 |
| 最近记录: |