2017-01-11 12 views
3

У меня есть код лазагана. Я хочу создать ту же сеть, используя caffe. Я мог бы преобразовать сеть. Но мне нужна помощь с гиперпараметрами в лазаньи. Гиперпараметры в лазании выглядеть следующим образом:L2 регуляризация в кофе, конверсия из лазаньи

lr = 1e-2 
weight_decay = 1e-5 

prediction = lasagne.layers.get_output(net['out']) 
loss = T.mean(lasagne.objectives.squared_error(prediction, target_var)) 

weightsl2 = lasagne.regularization.regularize_network_params(net['out'], lasagne.regularization.l2) 
loss += weight_decay * weightsl2 

Как я выполнить упорядочению части L2 в CAFFE? Должен ли я добавить любой слой для регуляризации после каждого уровня свертки/внутреннего продукта? Соответствующие части от моего solver.prototxt как показано ниже:

base_lr: 0.01 
lr_policy: "fixed" 
weight_decay: 0.00001 
regularization_type: "L2" 
stepsize: 300 
gamma: 0.1 
max_iter: 2000 
momentum: 0.9 

также размещены в http://datascience.stackexchange.com. Ожидание ответов.

+1

, пожалуйста, не отправляйте повторяющиеся вопросы на нескольких сайтах stackexchange. – Shai

+2

отправил на datascience, ждал ответов, не получил ответа, а затем отправил на stackoverflow. Я буду избегать многократной публикации впредь. – user27665

ответ

2

Кажется, что вы уже поняли это.
Метадатчик weight_decay в сочетании с regularization_type: "L2" в вашем 'solver.prototxt' сообщить caffe о том, как использовать L2 регуляризации с weight_decay = 1e-5.

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

param { decay_mult: 1 } 

Например, "InnerProduct" слой с уклоном имеет два параметра:

layer { 
    type: "InnerProduct" 
    name: "fc1" 
    # bottom and top here 
    inner_product_param { 
    bias_term: true 
    # ... other params 
    } 
    param { decay_mult: 1 } # for weights use regularization 
    param { decay_mult: 0 } # do not regularize the bias 
} 

По умолчанию decay_mult устанавливается равным 1, что есть, все веса сети регуляризуются одинаково. Вы можете изменить это, чтобы упорядочить более/менее конкретные капли параметров.

+0

Вы знаете, как выбрать максимальную регуляризацию нормы? Я просто могу найти L1 и L2 типа – user8264

+0

@ user8264. AFAIK Caffe еще не имеет малой нормировки. – Shai