コード例 #1
0
def test_map_to_domain():
    inputs = [None, 'foo', 1, 1.0, True, False]
    d = Domain()

    for i in inputs:
        with pytest.raises(NotImplementedError):
            d.map_to_domain(i)
コード例 #2
0
def test_init():
    d = Domain()
    assert d.name is None
    assert d.current is None
    assert d._complexity is None

    d = Domain('foo')
    assert d.name == 'foo'
    assert d.current is None
    assert d._complexity is None
コード例 #3
0
def test_complexity():
    d = Domain()
    assert d.complexity == 1
    assert d._complexity == 1
    assert d.complexity == 1

    d = Domain()
    assert d.complexity == 1
    assert d._complexity == 1
    assert d.complexity == 1
コード例 #4
0
ファイル: searchspace.py プロジェクト: craymichael/pyrameter
    def from_json(cls, obj):
        """Recreate a SearchSpace from its JSON representation.

        Parameters
        ----------
        obj : dict
            JSON encoding of the SearchSpace

        Returns
        -------
        searchspace : `pyrameter.searchspace.SearchSpace`
        """
        domains = [Domain.from_json(d) for d in obj['domains']]
        searchspace = cls(domains, exp_key=obj['exp_key'])
        trials = []
        for t in obj['trials']:
            trial = Trial(searchspace,
                          hyperparameters=t['hyperparameters'],
                          results=t['results'],
                          objective=t['objective'],
                          errmsg=t['errmsg'])
            trial.dirty = False
            trials.append(trial)
        searchspace.trials = trials
        searchspace._complexity = obj['complexity']
        searchspace._uncertainty = obj['uncertainty']
        return searchspace
コード例 #5
0
    def load(self, exp_key):
        """Load a hyperparameter search state.

        Returns
        -------
        searchspaces : list of `pyrameter.domains.searchspace.SearchSpace`
            The search spaces in the eperiment as of their most recent save.
        """
        searchspaces = self.connection['searchspaces'].find(
            {'exp_key': exp_key})

        loaded = []

        for searchspace in searchspaces:
            domains = self.connection['domains'].find(
                {'_id': {
                    '$in': searchspace['domains']
                }})
            domains = sorted([Domain.from_json(d) for d in domains])

            trials = self.connection['trials'.find(
                {'_id': {
                    '$in': searchspace['trials']
                }})]
            trials = [Trial.from_json(t) for t in trials]
            for t in trials:
                trial.dirty = False

            ss = SearchSpace.from_json(searchspace)
            ss.domains = domains
            ss.trials = trials
            loaded.append(ss)

        return loaded
コード例 #6
0
ファイル: searchspace.py プロジェクト: jeffkinnison/pyrameter
    def from_json(cls, obj):
        """Recreate a SearchSpace from its JSON representation.

        Parameters
        ----------
        obj : dict
            JSON encoding of the SearchSpace

        Returns
        -------
        searchspace : `pyrameter.searchspace.SearchSpace`
        """
        domains = [Domain.from_json(d) for d in obj['domains']]
        searchspace = cls(domains, exp_key=obj['exp_key'])
        trials = []
        for t in obj['trials']:
            t['searchspace'] = searchspace
            trial = Trial.from_json(t)
            trial.dirty = False
            trials.append(trial)
        searchspace.trials = trials
        searchspace._complexity = obj['complexity']
        searchspace._uncertainty = obj['uncertainty']
        print(obj)
        searchspace.id = obj['id']
        return searchspace
コード例 #7
0
    def from_json(cls, obj):
        domain = cls(obj['name'],
                     Domain.from_json(obj['domain']),
                     obj['repetitions'],
                     split=obj['split'])

        domain.id = obj['id']
        domain.current = obj['current']

        return domain
コード例 #8
0
def test_to_json():
    d = Domain()
    assert d.to_json() == {'name': None,
                           'type': 'pyrameter.domains.base.Domain'}

    d = Domain('foo')
    assert d.to_json() == {'name': 'foo',
                           'type': 'pyrameter.domains.base.Domain'}
コード例 #9
0
def test_to_index():
    inputs = [None, 'foo', 1, 1.0, True, False]
    d = Domain()

    for i in inputs:
        assert d.to_index(i) == i
コード例 #10
0
def test_generate():
    d = Domain()
    with pytest.raises(NotImplementedError):
        d.generate()
コード例 #11
0
def test_map_to_domain():
    inputs = [None, 'foo', 1, 1.0, True, False]
    d = Domain()

    for i in inputs:
        assert d.map_to_domain(i) == i