是否可以让mmclassification的dataloader每次返回同一张图片,修改哪些代码
时间: 2024-03-02 16:49:12 浏览: 17
可以修改`mmcls/datasets/pipelines/loading.py`中的`LoadImageFromFile`类,将其`__call__`函数中的随机数生成部分注释掉,代码如下:
```python
class LoadImageFromFile:
"""Loading image from file.
Args:
to_float32 (bool): Whether to convert the loaded image to float32.
Default: True.
color_type (str): Specifies how the image is read. It can be one of
'color', 'grayscale' or 'unchanged'. Default: 'color'.
"""
def __init__(self, to_float32=True, color_type='color'):
self.to_float32 = to_float32
self.color_type = color_type
def __call__(self, results):
"""Call function to load image from file.
Args:
results (dict): A result dict contains the file name.
Returns:
dict: ``results`` will be returned containing loaded image.
"""
filename = results['filename']
img = imread(filename, self.color_type)
if self.to_float32:
img = img.astype(np.float32)
results['img'] = img
# results['img_shape'] = img.shape
# results['ori_shape'] = img.shape
# results['pad_shape'] = img.shape
# results['scale_factor'] = 1.0
# flip_ratio = 0
# if 'flip_ratio' in results:
# flip_ratio = results['flip_ratio']
# if np.random.rand() < flip_ratio:
# results['img'] = results['img'][:, ::-1, :]
# results['flip'] = True
return results
```
将上述代码替换掉原来的`LoadImageFromFile`类即可。这样每次读取图片时都会返回同一张图片。