Обучение сети для конкретных классов Deep Dream в изображения - PullRequest
0 голосов
/ 01 января 2019

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ-- Google Deep Dream - используйте классы для "управления мечтами" : связанные, однако это не отменяет этот вопрос (я надеюсь), так как я (наивно) хочу переобучить сеть,Я больше запутался, чем они, и вопрос все еще открыт.Под определенными классами я имею в виду кошек, под изображениями я имею в виду изображения людей (но если это работает в целом, это даже лучше), и я слышал, что AlexNet проще, поэтому я собираюсь с этим.

(Windows7, субпаритет GPU (GTX 860M; вычислительные возможности 5.0, хотя, так что не отчаивайтесь), много времени, машинное обучение noob)

Что я хотел бы сделать, так это сделать Deep Dreamчто он обычно делает, но вместо зданий, рыб, людей и т. д. я хочу, чтобы он только создавал кошек в изображениях (в идеале, чтобы можно было делать фотографии с людьми на них).

Что я сделал:обучил сеть исключительно с изображениями кошек (разные наборы для обучения и тестирования, но только класс 0 в train.txt и test.txt и num_output: 1 в train_val.prototxt), и мне страшно видеть, что это будет делать в DeepМечта (вероятно, просто случайный шум? Idk).

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

Анаконда, CUDA (w / CuDNN), Caffe и Deep Dream работают нормально, однако я не знаю, как их использовать.(должным образом).После этого урока , который, как мне кажется, предназначен только для разграничения собак и кошек, мне удалось запустить тренировку кофе без каких-либо фатальных ошибок ... но сеть на самом деле не изучает ничего полезного (я думаю).В любом случае, мой (ые) вопрос (ы):

Можно ли где-то просто изменить значение, чтобы bvlc_googlenet находил кошек только в тех изображениях, которые я им кормлю?(Но не главный вопрос.)

Чтобы обучить сеть, которую можно использовать с Deep Dream, для распознавания кошек (но не людей, рыб, зданий или чего-либо еще) на изображениях, которые представляют собой фотографии с людьми на них,и в основном только эти виды изображений [кстати, так получилось, что у меня есть несколько сотен фотографий меня и моих друзей, и это то, чем я действительно заинтересован в том, чтобы вылечить), какие данные обучения и тестирования мне нужны (виды изображений (люди, кошки, собаки, пейзажи), количество изображений, соотношение кошек, а не кошек в обучении и тестировании и т. д.)?

Как должны выглядеть train.txt и test.txt)?Должны ли они иметь одинаковое количество классов?Должен ли я пропустить какой-либо класс (ы) в одном из них?Каковы правила настройки классов в train.txt и test.txt?

Как мне изменить num_output (учебник сказал мне изменить это значение только для слоя fc8)?

Какие конфигурации следует использовать 8 ГБ ОЗУ, 2 ГБ системы VRAM для solver.prototxt?По умолчанию это абсурд, поэтому я сделал (в новых строках) (не полный файл) lr_policy: ”step”;test_iter: 100;test_interval: 500;размер шага: 2500 (только с использованием 5000 изображений, все кошки, в настоящее время);max_iter: 10000;iter_size: 5;вес_день: 0,004;[для обоих слоев данных в train_val.prototxt] batch_size: 10.GPU-Z говорит мне, что я использую только 1 ГБ видеопамяти.

Предполагается, что тестовая сеть должна иметь 2 выхода (точность и потери) на класс?И чистая тренировка, всего 1 (потеря) на класс?(только с кошками у меня 2 и 1 соответственно)

Нужно ли мне на самом деле deploy.prototxt для AlexNet?В учебнике об этом не упоминалось, и я думаю, что в документах говорилось, что это просто копия train_val.prototxt?

Как бы я максимально активировал кошек?(вероятно, связано с первым вопросом)

Также, пожалуйста, укажите на любые вопиющие ошибки в моей настройке (кроме наличия только изображений кошек, потому что я думал, что это было только логично), что по сути то же самое, что и .

скрипт Python длясоздать train.txt и test.txt (просто перечисляет все изображения, разделяя их между train.txt и test.txt и добавляя правильный номер класса [который, в моем случае, гарантирует 0% потерь: D]) ---> convert_imageset.exe для создания папок lmdb ---> compute_image_mean.exe для создания среднего изображения ---> вызов caffe train, который не приводит к фатальным исключениям, в основном потому, что он на самом деле ничего не делает

(если вам нужнофайлы / дополнительную информацию, просто спросите.)

...