コード例 #1
0
ファイル: test_copy.py プロジェクト: utsavakru/nengo
def test_pickle_model(RefSimulator, seed):
    t_run = 0.5
    simseed = seed + 1

    with nengo.Network(seed=seed) as network:
        u = nengo.Node(nengo.processes.WhiteSignal(t_run, 5))
        a = nengo.Ensemble(100, 1)
        b = nengo.Ensemble(100, 1)
        nengo.Connection(u, a, synapse=None)
        nengo.Connection(a, b, function=np.square)
        up = nengo.Probe(u, synapse=0.01)
        ap = nengo.Probe(a, synapse=0.01)
        bp = nengo.Probe(b, synapse=0.01)

    with RefSimulator(network, seed=simseed) as sim:
        sim.run(t_run)
        t0, u0, a0, b0 = sim.trange(), sim.data[up], sim.data[ap], sim.data[bp]
        pkls = pickle.dumps(dict(model=sim.model, up=up, ap=ap, bp=bp))

    # reload model
    del network, sim, up, ap, bp
    pkl = pickle.loads(pkls)
    up, ap, bp = pkl['up'], pkl['ap'], pkl['bp']

    with RefSimulator(None, model=pkl['model'], seed=simseed) as sim:
        sim.run(t_run)
        t1, u1, a1, b1 = sim.trange(), sim.data[up], sim.data[ap], sim.data[bp]

    tols = dict(atol=1e-5)
    assert np.allclose(t1, t0, **tols)
    assert np.allclose(u1, u0, **tols)
    assert np.allclose(a1, a0, **tols)
    assert np.allclose(b1, b0, **tols)
コード例 #2
0
ファイル: cache.py プロジェクト: CamZHU/nengo
 def __init__(self, obj):
     self.fingerprint = hashlib.sha1()
     try:
         self.fingerprint.update(pickle.dumps(obj, pickle.HIGHEST_PROTOCOL))
     except (pickle.PicklingError, TypeError) as err:
         raise ValueError("Cannot create fingerprint: {msg}".format(
             msg=str(err)))
コード例 #3
0
 def __init__(self, obj):
     self.fingerprint = hashlib.sha1()
     try:
         self.fingerprint.update(pickle.dumps(obj, pickle.HIGHEST_PROTOCOL))
     except (pickle.PicklingError, TypeError) as err:
         raise ValueError("Cannot create fingerprint: {msg}".format(
             msg=str(err)))
コード例 #4
0
    def __init__(self, obj):
        if not self.supports(obj):
            raise FingerprintError("Object of type %r cannot be fingerprinted."
                                   % type(obj).__name__)

        self.fingerprint = hashlib.sha1()
        try:
            self.fingerprint.update(pickle.dumps(obj, pickle.HIGHEST_PROTOCOL))
        except Exception as err:
            raise FingerprintError(str(err))
コード例 #5
0
    def __init__(self, obj):
        if not self.supports(obj):
            raise FingerprintError("Object of type %r cannot be fingerprinted."
                                   % type(obj).__name__)

        self.fingerprint = hashlib.sha1()
        try:
            self.fingerprint.update(pickle.dumps(obj, pickle.HIGHEST_PROTOCOL))
        except Exception as err:
            raise FingerprintError(str(err))
コード例 #6
0
def test_pickle_obj_view():
    with nengo.Network():
        ens = nengo.Ensemble(10, 4)
        original = ens[:2]

    cp = pickle.loads(pickle.dumps(original))

    assert cp is not original
    assert cp.obj is not ens
    assert cp.obj.n_neurons == 10
    assert cp.obj.dimensions == 4
    assert cp.slice == original.slice
コード例 #7
0
def test_pickle_obj_view():
    with nengo.Network():
        ens = nengo.Ensemble(10, 4)
        original = ens[:2]

    cp = pickle.loads(pickle.dumps(original))

    assert cp is not original
    assert cp.obj is not ens
    assert cp.obj.n_neurons == 10
    assert cp.obj.dimensions == 4
    assert cp.slice == original.slice
コード例 #8
0
def test_pickle_obj_view_in_connection():
    with nengo.Network() as original:
        node = nengo.Node([0.1, 0.2])
        ens = nengo.Ensemble(10, 2)
        nengo.Connection(node[0], ens[1])
        nengo.Connection(node[1], ens[0])

    cp = pickle.loads(pickle.dumps(original))
    assert cp.nodes[0] is not node
    assert cp.ensembles[0] is not ens
    assert cp.connections[0].pre.obj is cp.nodes[0]
    assert cp.connections[1].pre.obj is cp.nodes[0]
    assert cp.connections[0].post.obj is cp.ensembles[0]
    assert cp.connections[1].post.obj is cp.ensembles[0]
コード例 #9
0
def test_pickle_obj_view_in_connection():
    with nengo.Network() as original:
        node = nengo.Node([0.1, 0.2])
        ens = nengo.Ensemble(10, 2)
        nengo.Connection(node[0], ens[1])
        nengo.Connection(node[1], ens[0])

    cp = pickle.loads(pickle.dumps(original))
    assert cp.nodes[0] is not node
    assert cp.ensembles[0] is not ens
    assert cp.connections[0].pre.obj is cp.nodes[0]
    assert cp.connections[1].pre.obj is cp.nodes[0]
    assert cp.connections[0].post.obj is cp.ensembles[0]
    assert cp.connections[1].post.obj is cp.ensembles[0]
コード例 #10
0
ファイル: cache.py プロジェクト: jacky168/nengo
 def __init__(self, obj):
     self.fingerprint = hashlib.sha1()
     try:
         self.fingerprint.update(pickle.dumps(obj, pickle.HIGHEST_PROTOCOL))
     except Exception as err:
         raise FingerprintError(str(err))
コード例 #11
0
 def test_pickle_roundtrip(self, make_f):
     original = make_f()
     cp = pickle.loads(pickle.dumps(original))
     assert_is_deepcopy(cp, original)
コード例 #12
0
 def __init__(self, obj):
     self.fingerprint = hashlib.sha1()
     try:
         self.fingerprint.update(pickle.dumps(obj, pickle.HIGHEST_PROTOCOL))
     except Exception as err:
         raise FingerprintError(str(err))
コード例 #13
0
 def test_unpickling_warning_in_network(self, make_f):
     original = make_f()
     pkl = pickle.dumps(original)
     with nengo.Network():
         with warns(NotAddedToNetworkWarning):
             pickle.loads(pkl)
コード例 #14
0
 def test_pickle_roundtrip(self, original):
     assert_is_deepcopy(pickle.loads(pickle.dumps(original)), original)
コード例 #15
0
 def test_unpickling_warning_in_network(self, make_f):
     original = make_f()
     pkl = pickle.dumps(original)
     with nengo.Network():
         with warns(NotAddedToNetworkWarning):
             pickle.loads(pkl)
コード例 #16
0
 def test_pickle_roundtrip(self, make_f):
     original = make_f()
     cp = pickle.loads(pickle.dumps(original))
     assert_is_deepcopy(cp, original)
コード例 #17
0
 def test_pickle_roundtrip(self, original):
     assert_is_deepcopy(pickle.loads(pickle.dumps(original)), original)