是否可以按类型将tensorflow标志分组并从中生成字符串?

2024-04-24 21:12:37 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以按类型对tensorflow标志进行分组? 例如。 一些标志与系统相关(例如线程的),而另一些则是模型超参数。你知道吗

那么,是否可以使用model hyperparams标志来生成字符串?(字符串将用于标识模型文件名)

谢谢


Tags: 字符串模型参数model文件名标志tensorflow系统
2条回答

我猜你是想自动存储超参数作为文件名的一部分,以便更好地组织你的实验?不幸的是,使用TensorFlow没有一个好的方法来实现这一点,但是您可以查看一些构建在它之上的高级框架,看看它们是否提供了类似的功能。你知道吗

我最终成功地做到了这一点,将FLAGS对象视为字典,然后将字典扁平化为key=value字符串。你知道吗

代码如下:

def build_string_from_dict(d, sep='__'):
    fd = _flatten_dict(d)
    return sep.join(['{}={}'.format(k, _value2str(fd[k])) for k in sorted(fd.keys())])

def _flatten_dict(d, parent_key='', sep='_'):
    # from http://stackoverflow.com/a/6027615/2476373
    items = []
    for k, v in d.items():
        new_key = parent_key + sep + k if parent_key else k
        if isinstance(v, collections.MutableMapping):
            items.extend(_flatten_dict(v, new_key, sep=sep).items())
        else:
            items.append((new_key, v))
    return dict(items)


flags_dict = vars(FLAGS)['__flags']
print build_string_from_dict(flags_dict)

相关问题 更多 >