Я могу запустить все ячейки учебного пособия Pytorch по загрузке данных ( учебник по Pytorch ).
Но когда я использую OpenCV
вместо Skimage
для изменения размера изображения, загрузчик данных застревает, т.е. ничего не происходит.
В классе Rescale
:
class Rescale(object):
.....
def __call__(self, sample):
....
#img = transform.resize(image, (new_h, new_w))
img = cv2.resize(image, (new_h, new_w))
.....
dataloader
и for loop
определяются с помощью:
dataloader = DataLoader(transformed_dataset, batch_size=4,
shuffle=True, num_workers=4)
for i_batch, sample_batched in enumerate(dataloader):
print(i_batch, sample_batched['image'].size(),
sample_batched['landmarks'].size())
Я могу заставить iterator
напечатать что-нибудь, если num_workers=0
. Похоже, что opencv
не очень хорошо работает с многопроцессорностью pytorch.
Я действительно предпочел бы использовать один и тот же пакет для преобразования изображений во время поезда и во время тестирования (и я уже использую OpenCV для масштабирования изображения во время теста).
Любые предложения будут с благодарностью.