天天看點

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實驗代碼的億些小細節