Beispiel #1
0
def train_bottom_layer(train_set,
                       validation_set,
                       batch_size=20,
                       k=1,
                       layers_sizes=[40],
                       pretraining_epochs=[800],
                       pretrain_lr=[0.005],
                       lambda_1=0.0,
                       lambda_2=0.1,
                       rng=None,
                       graph_output=False):
    print('Visible nodes: %i' % train_set.get_value().shape[1])
    print('Output nodes: %i' % layers_sizes[-1])
    dbn = DBN(numpy_rng=rng,
              n_ins=train_set.get_value().shape[1],
              hidden_layers_sizes=layers_sizes[:-1],
              n_outs=layers_sizes[-1])

    dbn.training(train_set,
                 batch_size,
                 k=k,
                 pretraining_epochs=pretraining_epochs,
                 pretrain_lr=pretrain_lr,
                 lambda_1=lambda_1,
                 lambda_2=lambda_2,
                 validation_set_x=validation_set,
                 graph_output=graph_output)

    output_train_set = dbn.get_output(train_set)
    if validation_set is not None:
        output_val_set = dbn.get_output(validation_set)
    else:
        output_val_set = None

    return dbn, output_train_set, output_val_set