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)
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'])
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"])
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)