Beispiel #1
0
def test_aggregation():
    batch_size = 128
    img_size = 10
    num_out = 3

    m = Model('test model cpu')
    l_in = m.add_layer(layers.InputLayer(shape=(batch_size,img_size)), name="l_in")
    l_out_mean = m.add_layer(layers.DenseLayer(l_in, num_out), name="l_out_mean")
    l_out_sum = m.add_layer(layers.DenseLayer(l_in, num_out), name="l_out_sum")

    m.bind_input(l_in, "pixels")
    m.bind_output(l_out_mean, lasagne.objectives.squared_error, "emotions", "label", "mean")
    m.bind_output(l_out_sum, lasagne.objectives.squared_error, "emotions", "label", "sum")

    from pprint import pprint
    pprint(m.to_dict())
    global_update_settings = ParamUpdateSettings(update=lasagne.updates.nesterov_momentum,learning_rate=0.1, momentum=0.5)

    trainer = Trainer(m, global_update_settings)

    pixels = np.random.rand(batch_size,img_size).astype(theano.config.floatX)
    emotions = np.random.rand(batch_size,num_out).astype(theano.config.floatX)

    batch_dict = dict(
        # learning_rate_default=0.1,
        # momentum_default=0.5,
        pixels=pixels,
        emotions=emotions,
        exmotions=emotions.copy()
    )
    outs = trainer.train_step(batch_dict)

    print "Aggregation test succeeded"
Beispiel #2
0
def test_serialization():
    m2 = _build_model()
    serialized_old = m2.to_dict()
    print "original model"
    pprint.pprint(serialized_old)

    m3 = Model('test serialize')
    m3.from_dict(serialized_old)
    print "model loaded from dict"
    pprint.pprint(m3.to_dict())
    data = dict(
        pixels=np.random.rand(10, 1, 20, 10).astype(theano.config.floatX))

    dirpath = tempfile.mkdtemp()
    filepath = os.path.join(dirpath, 'testmodelout')

    m3.save_model(filepath)
    out3 = m3.predict(data, ['out', 'out2'])

    m4 = Model('test convenience')
    m4.load_model(filepath)

    shutil.rmtree(dirpath)

    assert serialized_old == m4.to_dict()

    assert np.allclose(m4.layers['DenseLayer_2'].W.get_value(),
                       m3.layers['DenseLayer_2'].W.get_value())
    assert ~np.allclose(m4.layers['DenseLayer_2'].W.get_value(),
                        m2.layers['DenseLayer_2'].W.get_value())

    out4 = m4.predict(data, ['out', 'out2'])

    print 'out pre serialization'
    print out3['out']
    print 'out post serialization'
    print out4['out']

    print 'out2 pre serialization'
    print out3['out2']
    print 'out2 post serialization'
    print out4['out2']
    assert np.allclose(out4['out'], out3['out'])
    assert np.allclose(out4['out2'], out3['out2'])
Beispiel #3
0
def test_serialization():
    m2 = _build_model()
    serialized_old = m2.to_dict()
    print "original model"
    pprint.pprint(serialized_old)

    m3 = Model("test serialize")
    m3.from_dict(serialized_old)
    print "model loaded from dict"
    pprint.pprint(m3.to_dict())
    data = dict(pixels=np.random.rand(10, 1, 20, 10).astype(theano.config.floatX))

    dirpath = tempfile.mkdtemp()
    filepath = os.path.join(dirpath, "testmodelout")

    m3.save_model(filepath)
    out3 = m3.predict(data, ["out", "out2"])

    m4 = Model("test convenience")
    m4.load_model(filepath)

    shutil.rmtree(dirpath)

    assert serialized_old == m4.to_dict()

    assert np.allclose(m4.layers["DenseLayer_2"].W.get_value(), m3.layers["DenseLayer_2"].W.get_value())
    assert ~np.allclose(m4.layers["DenseLayer_2"].W.get_value(), m2.layers["DenseLayer_2"].W.get_value())

    out4 = m4.predict(data, ["out", "out2"])

    print "out pre serialization"
    print out3["out"]
    print "out post serialization"
    print out4["out"]

    print "out2 pre serialization"
    print out3["out2"]
    print "out2 post serialization"
    print out4["out2"]
    assert np.allclose(out4["out"], out3["out"])
    assert np.allclose(out4["out2"], out3["out2"])
Beispiel #4
0
def test_aggregation():
    batch_size = 128
    img_size = 10
    num_out = 3

    m = Model('test model cpu')
    l_in = m.add_layer(layers.InputLayer(shape=(batch_size, img_size)),
                       name="l_in")
    l_out_mean = m.add_layer(layers.DenseLayer(l_in, num_out),
                             name="l_out_mean")
    l_out_sum = m.add_layer(layers.DenseLayer(l_in, num_out), name="l_out_sum")

    m.bind_input(l_in, "pixels")
    m.bind_output(l_out_mean, lasagne.objectives.squared_error, "emotions",
                  "label", "mean")
    m.bind_output(l_out_sum, lasagne.objectives.squared_error, "emotions",
                  "label", "sum")

    from pprint import pprint
    pprint(m.to_dict())
    global_update_settings = ParamUpdateSettings(
        update=lasagne.updates.nesterov_momentum,
        learning_rate=0.1,
        momentum=0.5)

    trainer = Trainer(m, global_update_settings)

    pixels = np.random.rand(batch_size, img_size).astype(theano.config.floatX)
    emotions = np.random.rand(batch_size, num_out).astype(theano.config.floatX)

    batch_dict = dict(
        # learning_rate_default=0.1,
        # momentum_default=0.5,
        pixels=pixels,
        emotions=emotions,
        exmotions=emotions.copy())
    outs = trainer.train_step(batch_dict)

    print "Aggregation test succeeded"