py-reader如何处理读取数据失败的情况
Created by: zzchust
在imagnet-classification的demo中,如遇到数据读取失败,该如何处理?
fluid中可能处理方法: 在reader_cv2.py中进行process_image操作时,使用try-except的方式,若读取数据失败,则使用全0填充image,使用-1填充label。 在设置cross-entropy 损失函数忽略标签为-1的数据。
缺陷:如果损失函数不支持忽略指定标签该如何处理呢?
在pytorch中可能的处理方式: 1)在model forward之前,可以对标签为-1的数据进行滤除,pytorch的model可以支持动态的batchsize (a. 不知道paddle是否支持每个batchsize数据大小不一致的情况; b. paddle的py-reader是否有方式显示的滤除标签为-1的数据) 2)在model forward之后,loss计算之前,对标签为-1的数据进行滤除。 3)在dataloader中,设置读取失败的数据返回为空,然后自定义collect-function即可,此时每个batch的大小可能不同。
目前生产环境的数据量大、数据格式各式各样、存储于集群的数据经常性损坏,如何方便的处理读取数据失败的情况,对提供使用体验特别重要。希望能帮忙答疑解惑。