Esempio n. 1
0
def test_trained_model_serialization():
    batch_size = 2
    img_size = 10
    num_hid = 10
    m = _build_model(batch_size, img_size, num_hid)
    global_update_settings = ParamUpdateSettings(
        update=lasagne.updates.nesterov_momentum,
        learning_rate=0.1,
        momentum=0.2)
    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_hid).astype(theano.config.floatX)

    batch_dict = dict(
        # learning_rate_default=0.1,
        # momentum_default=0.5,
        pixels=pixels,
        emotions=emotions)
    outs = trainer.train_step(batch_dict)
    preds = m.predict(batch_dict)

    dirpath = tempfile.mkdtemp()
    filepath = os.path.join(dirpath, 'testtrainerout')
    m.save_model(filepath)
    m2 = Model('load')
    m2.load_model(filepath)
    shutil.rmtree(dirpath)

    global_update_settings = ParamUpdateSettings(
        update=lasagne.updates.nesterov_momentum,
        learning_rate=0.1,
        momentum=0.2)
    trainer2 = Trainer(m2, global_update_settings)
    preds2 = m.predict(batch_dict)
    outs = trainer.train_step(batch_dict)
    outs2 = trainer2.train_step(batch_dict)

    assert m.outputs.keys() == m2.outputs.keys()

    for p, p2 in zip(preds.values(), preds2.values()):
        assert np.allclose(p, p2)

    for o, o2 in zip(outs, outs2):
        assert np.allclose(o, o2)
Esempio n. 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'])
Esempio n. 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"])
Esempio n. 4
0
def test_trained_model_serialization():
    batch_size = 2
    img_size = 10
    num_hid = 10
    m = _build_model(batch_size,img_size,num_hid)
    global_update_settings = ParamUpdateSettings(update=lasagne.updates.nesterov_momentum,learning_rate=0.1, momentum=0.2)
    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_hid).astype(theano.config.floatX)

    batch_dict = dict(
        # learning_rate_default=0.1,
        # momentum_default=0.5,
        pixels=pixels,
        emotions=emotions
    )
    outs = trainer.train_step(batch_dict)
    preds = m.predict(batch_dict)

    dirpath = tempfile.mkdtemp()
    filepath = os.path.join(dirpath, 'testtrainerout')
    m.save_model(filepath)
    m2 = Model('load')
    m2.load_model(filepath)
    shutil.rmtree(dirpath)

    global_update_settings = ParamUpdateSettings(update=lasagne.updates.nesterov_momentum,learning_rate=0.1, momentum=0.2)
    trainer2 = Trainer(m2,global_update_settings)
    preds2 = m.predict(batch_dict)
    outs  = trainer.train_step(batch_dict)
    outs2 = trainer2.train_step(batch_dict)
   
    assert m.outputs.keys()==m2.outputs.keys()

    for p,p2 in zip(preds.values(),preds2.values()):
        assert np.allclose(p,p2)

    for o,o2 in zip(outs,outs2):
        assert np.allclose(o,o2)