“kur dump mnist.yml”时如何删除重复输出?

2024-09-27 00:11:56 发布

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

问题

运行kur dump mnist.yml时,输出有重复的部分:trainingtrain的重复部分,testingtestevaluationevaluate等。参见下面的示例:

    {
    "evaluate": {
        "data": [
            {
                "mnist": {
                    "images": {
                        "checksum": "8d422c7b0a1c1c79245a5bcf07fe86e33eeafee792b84584aec276f5a2dbc4e6",
                        "path": "~/kur",
                        "url": "http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz"
                    },
                    "labels": {
                        "checksum": "f7ae60f92e00ec6debd23a6088c31dbd2371eca3ffa0defaefb259924204aec6",
                        "path": "~/kur",
                        "url": "http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz"
                    }
                }
            }
        ],
        "destination": "mnist.results.pkl",
        "hooks": [
            "mnist"
        ],
        "provider": {
            "num_batches": null
        },
        "weights": "mnist.w"
    },
    "evaluation": {
        "data": [
            {
                "mnist": {
                    "images": {
                        "checksum": "8d422c7b0a1c1c79245a5bcf07fe86e33eeafee792b84584aec276f5a2dbc4e6",
                        "path": "~/kur",
                        "url": "http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz"  
...

那么,我们如何从输出中删除重复的部分呢


Tags: pathcomhttpurlimagesmnistevaluationgz
2条回答

一种解决方案

注释掉^{}中的部分行:

builtin = {
        'settings' : ('settings', ),
        'train' : ('train',),# 'training'),
        'validate' : ('validate',),# 'validation'),
        'test' : ('test', ), #'testing'),
        'evaluate' : ('evaluate', ), #'evaluation'),
        'templates' : ('templates', ),
        'model' : ('model', ),
        'loss' : ('loss', )
    }

我已经通过kur.Kurfile.parsekur.Kurfile._parse_section进行了实验,到目前为止,我没有看到这样做的任何副作用

使用重复的节名的目的是为了更方便用户。这样,有人就可以用traintraining来定义与培训相关的部分,而不是思考“嗯。。。我不记得钥匙是什么了。是“训练”还是“训练”?我想我要查一下文件。”

不过,JSON转储可能会更加混乱,这是事实。另一方面,它也是一个更高级的功能。也许一种折衷办法是在转储JSON时隐藏重复的密钥,但这也可能导致其他形式的混淆(例如,“Kur为什么接受‘训练’而它甚至不是有效的密钥,也没有出现在dump中?”)

相关问题 更多 >

    热门问题