2016-02-21 4 views
1

Я хочу удалить параметр смещения. Я попытался включить thebias=None, где я определяю свою нейронную сеть, но это не сработало.удаление смещения от уровня нейронной сети

net1 = NeuralNet(
layers=[ # three layers: one hidden layer 
('input', layers.InputLayer), 
#('hidden', layers.DenseLayer), 
('output', layers.DenseLayer), 
], 
# layer parameters: 
input_shape=(None,2), # 2 inputs 
#hidden_num_units=200, # number of units in hidden layer 
output_nonlinearity=None, # output layer uses identity function 
output_num_units=1, # 1 target value 

# optimization method: 
update=nesterov_momentum, 
update_learning_rate=0.01, 
update_momentum=0.9, 

regression=True, # flag to indicate we're dealing with regression problem 
max_epochs=400, # we want to train this many epochs 
verbose=1, 
bias = None 
) 

ответ

1
# Build the network yourself 
inputs = InputLayer(shape=(None, 2)) 
network = DenseLayer(inputs, num_units=1, nonlinearity=None, b = None) 

net1 = NeuralNet(
network, 
#We don't need any of these parameters since we provided them above 
# layer parameters: 
#input_shape=(None,2), # 2 inputs 
#hidden_num_units=200, # number of units in hidden layer 
#output_nonlinearity=None, # output layer uses identity function 
#output_num_units=1, # 1 target value 

# optimization method: 
update=nesterov_momentum, 
update_learning_rate=0.01, 
update_momentum=0.9, 

regression=True, # flag to indicate we're dealing with regression problem 
max_epochs=400, # we want to train this many epochs 
verbose=1, 
bias = None 
) 

Я думаю, что это должно сработать. В сети может быть kwarg (я не помню), но я думаю, что это по умолчанию первый параметр, если ничего не дано.

+1

Я помню, где я это видел ... в исходном коде :): https://gist.github.com/dnouri/fe855653e9757e1ce8c4#file-nntoy-py-L24 –

1

Согласно Lasagne Documentation for conv layers (это похоже на плотных слоев), у вас есть следующие опции для уклонов:

b = None 

По крайней мере, в соответствии с документацией лазаньи, как представляется, не будет параметр «смещения» для любого из слоев, вместо этого они используют «b». Я не могу говорить за NoLearn, поскольку я не использую этот пакет.

Edit:

Вот некоторые Лазанья пример кода:

import lasagne 
net = {} 
net['input'] = lasagne.layers.InputLayer(shape=(None, 3, 224,224), input_var=None) 
net['conv'] = lasagne.layers.Conv2DLayer(net['input'], num_filters=5, filter_size=3, b = None) 
print net['conv'].get_params() 

Возвращает:

[W] 

в одиночку, то есть не существует термин смещения.

Для NoLearn Я не уверен, поскольку я не использую этот пакет.

+0

при использовании 'b = None', я получаю «ValueError: Unused kwarg: b» – MAS

+0

Я обновил свой ответ с помощью некоторого образца кода лазанья. Я не использую NoLearn. Я предоставляю ответ лазанью, потому что вы включили тег Лазаньи для своего вопроса. Надеюсь, это по-прежнему полезно для вас. –

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

  • Нет связанных вопросов^_^