天天看点

PyTorch神经网络项目文件初始化脚本

文章目录

    • Python 脚本
    • 参考资料

Python 脚本

import codecs
import os
from codecs import StreamReaderWriter


init_filename: str = '__init__.py'


def write_to_explanation(explanation_filename: StreamReaderWriter,
                         filename: str, explain: str = "") -> None:
    explanation_filename.write("- {} - {}\n".format(filename, explain))
    print("Successfully create {}.\n".format(filename))


def create_file(filename: str, explanation_filename: StreamReaderWriter, explain: str = "", encoding: str = "utf-8"):
    with open(filename, "w") as _:
        pass
    write_to_explanation(explanation_filename, filename, explain)


def create_folder(filename: str, explanation_filename: StreamReaderWriter, explain: str = "", encoding: str = "utf-8"):
    os.mkdir(filename)
    write_to_explanation(explanation_filename, filename, explain)
    

def create_module(filename: str, explanation_filename: StreamReaderWriter, explain: str = "", encoding: str = "utf-8"):
    create_folder(filename, explanation_filename, explain)
    create_file(f'{ filename }/{ init_filename }', explanation_filename, explain)
    write_to_explanation(explanation_filename, filename, explain)


with codecs.open("EXPLANATION.md", "w", "utf-8") as explanation:
    explanation.write("# EXPLANATION\n")

    create_module("checkpoints", explanation, "存放模型的地方")
    create_module("data", explanation, "定义各种用于训练测试的dataset")
    create_file("eval.py", explanation, "测试代码")
    create_file("loss.py", explanation, "定义各种loss")
    create_file("metrics.py", explanation, "定义各种约定俗成的评估标准")
    create_module("model", explanation, "定义各种实验中的模型,建议每个模型创建一个package")
    create_file("options.py", explanation, "定义各种实验参数,以命令行形式传入")
    create_file("README.md", explanation, "介绍一下自己的repo")
    create_module("scripts", explanation, "各种训练、测试脚本")
    create_file("train.py", explanation, "训练代码")
    create_module("utils", explanation, "各种工具代码")

    explanation.write("参考资料:[Pytorch实验代码的亿些小细节](https://zhuanlan.zhihu.com/p/409662511)\n")


           

参考资料

Pytorch实验代码的亿些小细节