0

Когда я поставил 'batch_size' в deploy.prototxt file в Google глубокого сна bvlc_googlenet снизить требования к памяти GPU, это не имеет никакого влияния на требования скорости, ни памяти. Это как будто его игнорировали. Я знаю, что сам файл (deploy.prototxt) используется, потому что другие изменения отражены в результатах, так что это не проблема. Я также попытался установить batch_size во всех связанных слоях («inception_4c/1x1» и т. Д.), Опять же никакой разницы.Установка batch_size в data_param для Caffe не имеет никакого эффекта

Это, как я устанавливаю его:

layer { 
    name: "inception_4c/output" 
    type: "Concat" 
    bottom: "inception_4c/1x1" 
    bottom: "inception_4c/3x3" 
    bottom: "inception_4c/5x5" 
    bottom: "inception_4c/pool_proj" 
    top: "inception_4c/output" 
    data_param { 
    batch_size 1 
    } 
} 

Когда я время выполнения сценария, это то же самое с batch_size 1 и с batch_size 512, нет никакой разницы.

Что я делаю неправильно?

ответ

0

data_param - это параметр уровня входных данных. Вы можете установить batch_size только для ввода, и это значение распространяется по сети.

В deploy.prototxt размер партии устанавливается первым 'input_dim' аргументом (third line), попытайтесь изменить это значение и посмотреть, если это имеет какое-либо влияние на потребление памяти вашей сети.

Первые несколько строк файла deploy.prototxt следует интерпретировать как

input: "data" # the "top" name of input layer 
input_dim: 10 # 4th dimension - batch size 
input_dim: 3 # 3rd dimension - number of channels 
input_dim: 224 # 2nd dimension - height of input 
input_dim: 224 # 1st dimension - width of input 

Таким образом, вы ожидаете на своем кулак ко слоя ("conv1/7x7_s2") «снизу» под названием «данных» с формой 10 -by- 3 -by- 224 -by- 224.

+0

Это изменило выход «Память, требуемый для данных», чтобы оно что-то повлияло. Но процесс все еще заканчивается. Требуемая память теперь составляет всего 50 МБ, а графическая карта имеет емкость 4 ГБ, но у нее заканчивается память «syncedmem.cpp: 51] Ошибка проверки: ошибка == cudaSuccess (2 против 0) из памяти». Есть идеи? – Sergey

+0

@Sergey Я не знаком с моделью/настройкой системы «глубокого сна». но похоже, что (а) вы делитесь графическим процессором с другими процессами? (b) возможно ли, что выделения памяти в GPU не являются «свободными»? – Shai

+0

Согласно команде «nvidia-smi», память, потребляемая рассматриваемым скриптом python, проходит от 10 МБ (до) до 4 ГБ (при запуске скрипта). Он находится в серверной среде. – Sergey

Смежные вопросы