def build_nips_network(self, input_width, input_height, output_dim, num_frames, batch_size, batch_norm = False): """ Build a network consistent with the 2013 NIPS paper. """ from lasagne.layers import cuda_convnet l_in = lasagne.layers.InputLayer( shape=( None, num_frames, input_width, input_height) ) l_conv1 = cuda_convnet.Conv2DCCLayer( l_in, num_filters=16, filter_size=(8, 8), stride=(4, 4), nonlinearity=lasagne.nonlinearities.rectify, #W=lasagne.init.HeUniform(c01b=True), W=lasagne.init.Normal(.01), b=lasagne.init.Constant(.1), dimshuffle=True ) if batch_norm : l_conv1 = batch_norm_layer( l_conv1 ) l_conv2 = cuda_convnet.Conv2DCCLayer( l_conv1, num_filters=32, filter_size=(4, 4), stride=(2, 2), nonlinearity=lasagne.nonlinearities.rectify, #W=lasagne.init.HeUniform(c01b=True), W=lasagne.init.Normal(.01), b=lasagne.init.Constant(.1), dimshuffle=True ) if batch_norm : l_conv2 = batch_norm_layer( l_conv2 ) l_hidden1 = lasagne.layers.DenseLayer( l_conv2, num_units=256, nonlinearity=lasagne.nonlinearities.rectify, #W=lasagne.init.HeUniform(), W=lasagne.init.Normal(.01), b=lasagne.init.Constant(.1) ) if batch_norm : l_hidden1 = batch_norm_layer( l_hidden1 ) l_out = lasagne.layers.DenseLayer( l_hidden1, num_units=output_dim, nonlinearity=None, #W=lasagne.init.HeUniform(), W=lasagne.init.Normal(.01), b=lasagne.init.Constant(.1) ) return l_out
def build_nips_network_dnn(self, input_width, input_height, output_dim, num_frames, batch_size, batch_norm = False): """ Build a network consistent with the 2013 NIPS paper. """ # Import it here, in case it isn't installed. from lasagne.layers import dnn l_in = lasagne.layers.InputLayer( shape=( None, num_frames, input_width, input_height) ) l_conv1 = dnn.Conv2DDNNLayer( l_in, num_filters=16, filter_size=(8, 8), stride=(4, 4), nonlinearity=lasagne.nonlinearities.rectify, #W=lasagne.init.HeUniform(), W=lasagne.init.Normal(.01), b=lasagne.init.Constant(.1) ) if batch_norm : l_conv1 = batch_norm_layer( l_conv1 ) l_conv2 = dnn.Conv2DDNNLayer( l_conv1, num_filters=32, filter_size=(4, 4), stride=(2, 2), nonlinearity=lasagne.nonlinearities.rectify, #W=lasagne.init.HeUniform(), W=lasagne.init.Normal(.01), b=lasagne.init.Constant(.1) ) if batch_norm : l_conv2 = batch_norm_layer( l_conv2 ) l_hidden1 = lasagne.layers.DenseLayer( l_conv2, num_units=256, nonlinearity=lasagne.nonlinearities.rectify, #W=lasagne.init.HeUniform(), W=lasagne.init.Normal(.01), b=lasagne.init.Constant(.1) ) if batch_norm : l_hidden1 = batch_norm_layer( l_hidden1 ) l_out = lasagne.layers.DenseLayer( l_hidden1, num_units=output_dim, nonlinearity=None, #W=lasagne.init.HeUniform(), W=lasagne.init.Normal(.01), b=lasagne.init.Constant(.1) ) return l_out
def build_nature_network_dnn(self, input_width, input_height, output_dim, num_frames, batch_size, batch_norm = False): """ Build a large network consistent with the DeepMind Nature paper. """ from lasagne.layers import dnn l_in = lasagne.layers.InputLayer( shape=( None, num_frames, input_width, input_height) ) l_conv1 = dnn.Conv2DDNNLayer( l_in, num_filters=32, filter_size=(8, 8), stride=(4, 4), nonlinearity=lasagne.nonlinearities.rectify, W=lasagne.init.HeUniform(), b=lasagne.init.Constant(.1) ) if batch_norm : l_conv1 = batch_norm_layer( l_conv1 ) l_conv2 = dnn.Conv2DDNNLayer( l_conv1, num_filters=64, filter_size=(4, 4), stride=(2, 2), nonlinearity=lasagne.nonlinearities.rectify, W=lasagne.init.HeUniform(), b=lasagne.init.Constant(.1) ) if batch_norm : l_conv2 = batch_norm_layer( l_conv2 ) l_conv3 = dnn.Conv2DDNNLayer( l_conv2, num_filters=64, filter_size=(3, 3), stride=(1, 1), nonlinearity=lasagne.nonlinearities.rectify, W=lasagne.init.HeUniform(), b=lasagne.init.Constant(.1) ) if batch_norm : l_conv3 = batch_norm_layer( l_conv3 ) l_hidden1 = lasagne.layers.DenseLayer( l_conv3, num_units=512, nonlinearity=lasagne.nonlinearities.rectify, W=lasagne.init.HeUniform(), b=lasagne.init.Constant(.1) ) if batch_norm : l_hidden1 = batch_norm_layer( l_hidden1 ) l_out = lasagne.layers.DenseLayer( l_hidden1, num_units=output_dim, nonlinearity=None, W=lasagne.init.HeUniform(), b=lasagne.init.Constant(.1) ) return l_out