pytorch - 如果图像的颜色格式是 BGR 而不是 RGB,会影响 NN 训练的准确性吗?
问题描述
我正在使用 ImageNet 数据集训练神经网络,当我使用 OpenCV 函数读取图像时,我注意到图像采用 BGR 颜色格式cv2.imread()
,这会影响训练精度吗?如果是,那么如何在 pytorch 中将其更改为 RGB?
解决方案
一般来说,它不会影响你的神经网络的准确性。但是,如果您使用的是预训练的 CNN,那么它可能会期望 RGB 图像作为输入,并且最初在 BGR 图像上的表现不会那么好,并且必须重新学习其 BGR 的权重。
您可以使用cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB)
.
您还可以考虑以下替代方法来读取图像:
torchvision.io.read_image(path)
(https://pytorch.org/vision/stable/io.html#image)torch.from_numpy(np.array(PIL.Image.open(path)))
torchvision.transforms.functional.pil_to_tensor(PIL.Image.open(path))
(https://pytorch.org/vision/stable/transforms.html#torchvision.transforms.functional.pil_to_tensor)
推荐阅读
- javascript - 如何在 jQuery 中编写手风琴式 JavaScript
- ansible - Ansible play recap 最终报告排序控制
- python - 为什么我在 Python 中为 some_nparray.size == 0 行得到 ValueError?
- python - 当有两个日期时,如何从 Python 中的文件名中提取日期?我如何转换为一年中的某一天?
- python - 将垂直线添加到悬停框(见图)
- google-cloud-platform - 当加密选择为客户管理时,Google Cloud 无法接收来自订阅的日志
- java - Selenium:无法从 Intellij 中 Java 项目的本地目录上传文件
- javascript - 有没有办法在一个被破坏后重新连接两个对等点?
- tinymce - 占位符插件 TinyMCE 或 CKEditor5
- angular - 可观察返回类型中缺少对象属性