dream

Форк
0
64 строки · 1.8 Кб
1
import copy
2

3

4
def make_name_string(dict_, final=False, do_epoch=False, set_epoch=None):
5
    if final:
6
        if not do_epoch:
7
            string = "{}_{}_{}".format(dict_.lr, dict_.optim, dict_.bs)
8
        elif set_epoch is not None:
9
            string = "{}_{}_{}_{}".format(dict_.lr, dict_.optim, dict_.bs, set_epoch)
10
        else:
11
            string = "{}_{}_{}_{}".format(dict_.lr, dict_.optim, dict_.bs, dict_.epoch)
12

13
        return string
14

15
    string = ""
16

17
    for k, v in dict_.items():
18
        if type(v) == DD:
19
            continue
20
        if isinstance(v, list):
21
            val = "#".join(is_bool(str(vv)) for vv in v)
22
        else:
23
            val = is_bool(v)
24
        if string:
25
            string += "-"
26
        string += "{}_{}".format(k, val)
27

28
    return string
29

30

31
def is_bool(v):
32
    check_is_bool = {"False": "F", "True": "T"}
33
    return check_is_bool.get(str(v), v)
34

35

36
# Taken from Jobman 0.1
37
class DD(dict):
38
    def __getattr__(self, attr):
39
        if attr == "__getstate__":
40
            return super(DD, self).__getstate__
41
        elif attr == "__setstate__":
42
            return super(DD, self).__setstate__
43
        elif attr == "__slots__":
44
            return super(DD, self).__slots__
45
        return self[attr]
46

47
    def __setattr__(self, attr, value):
48
        # Safety check to ensure consistent behavior with __getattr__.
49
        assert attr not in ("__getstate__", "__setstate__", "__slots__")
50
        #         if attr.startswith('__'):
51
        #             return super(DD, self).__setattr__(attr, value)
52
        self[attr] = value
53

54
    def __str__(self):
55
        return "DD%s" % dict(self)
56

57
    def __repr__(self):
58
        return str(self)
59

60
    def __deepcopy__(self, memo):
61
        z = DD()
62
        for k, kv in self.items():
63
            z[k] = copy.deepcopy(kv, memo)
64
        return z
65

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.