пример выполнения простого умозаключения с молнией - PullRequest
0 голосов
/ 03 мая 2020

У меня есть существующая модель, в которой я загружаю предварительно подготовленные веса, а затем делаю вывод (по одному изображению за раз) в pytorch. Я пытаюсь в основном преобразовать его в модуль молнии pytorch и запутался в нескольких вещах.

Так что в настоящее время мой __init__ метод для модели выглядит следующим образом:

self._load_config_file(cfg_file)
# just creates the pytorch network
self.create_network()  

self.load_weights(weights_file)

self.cuda(device=0)  # assumes GPU and uses one. This is probably suboptimal
self.eval()  # inference mode

Что я могу почерпнуть из документации по молнии, я могу сделать то же самое, за исключением того, чтобы не делать звонок cuda(). Итак, что-то вроде:

self.create_network()

self.load_weights(weights_file)
self.freeze()  # inference mode

Итак, мой первый вопрос: правильный ли это способ использования молнии? Как бы молния узнала, нужно ли ей использовать графический процессор? Я предполагаю, что это должно быть где-то указано.

Теперь для вывода у меня есть следующая настройка:

def infer(frame):
    img = transform(frame)  # apply some transformation to the input
    img = torch.from_numpy(img).float().unsqueeze(0).cuda(device=0)
    with torch.no_grad():
        output = self.__call__(Variable(img)).data.cpu().numpy()
    return output

Это бит, который меня смутил. Какие функции мне нужно переопределить, чтобы сделать вывод, совместимый с молнией?

Кроме того, на данный момент вход поступает в виде массива numpy. Это что-то, что было бы возможно из модуля молнии, или для вещей всегда нужно использовать какой-то загрузчик данных?

В какой-то момент я хочу расширить реализацию этой модели, чтобы также проводить обучение, поэтому хочу убедиться, что я делаю это правильно, но в то время как большинство примеров сосредоточены на обучающих моделях, простой пример простого выполнения вывода на производстве время на одном изображении / точке данных может быть полезным.

Я использую 0.7.5 с pytorch 1.4.0 на GPU с cuda 10.1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...