Ваша текущая установка OpenCV не поддерживает формат файла, который вы пытаетесь создать на диске.
Проверьте правильность расширения файла. Если это так, вам придется перекомпилировать OpenCV и добавить поддержку этого формата и, возможно, установить библиотеки, которые вам не хватает.
Это все, что можно сказать без дополнительной информации.
EDIT:
Поскольку мне также не удалось создать приложение, которое использует интерфейс C ++ OpenCV (v2.3 на VS2005), я закончил использование следующего обходного пути: при необходимости преобразуйте типы C ++ в типы C.
Преобразование из IplImage*
в cv::Mat
довольно прямолинейно:
IplImage* ipl_img = cvLoadImage("test.jpg", CV_LOAD_IMAGE_UNCHANGED);
Mat mat_img(ipl_img);
imshow("window", mat_img);
Преобразование cv::Mat
в IplImage*
не так очевидно, но это также просто , а трюк - использовать IplImage
вместо IplImage*
:
IplImage ipl_from_mat((IplImage)mat_img);
cvNamedWindow("window", CV_WINDOW_AUTOSIZE);
// and then pass the memory address of the variable when you need it as IplImage*
cvShowImage("window", &ipl_from_mat);
Необходимо раздельно распределять данные обучения для каждого графического процессора. Параллелизм данных реализуется с использованием torch.nn.DataParallel
. Пример из документации pytorch :
import torch
import torch.nn as nn
class DataParallelModel(nn.Module):
def __init__(self):
super().__init__()
self.block1 = nn.Linear(10, 20)
# wrap block2 in DataParallel
self.block2 = nn.Linear(20, 20)
self.block2 = nn.DataParallel(self.block2)
self.block3 = nn.Linear(20, 20)
def forward(self, x):
x = self.block1(x)
x = self.block2(x)
x = self.block3(x)
return x
nn.DataParallel(self.net).to(self._device)
для распараллеливания и перемещения его на устройство. Если у меня есть только одно устройство CUDA, все будет работать. Но если я использую 2 устройства, я получаюRuntimeErroor
из-за несоответствия размера в моей сети (RuntimeError: size mismatch, m1: [1 x 144], m2: [288 x 256] at /pytorch/aten/src/THC/generic/THCTensorMathBlas.cu:249
). Я использую размер партии 16, поэтому нет проблем с разделением данных на устройства. У вас есть идея, что происходит? – bene 22 July 2018 в 13:22