深度学习基本实用工具

目录

一、argparse

argparse库可以获取命令行的参数并将参数传入到运行文件中,大大方便了深度学习需要不断修改参数的操作。

import argparse

# 创建一个参数获取器
parser = argparse.ArgumentParser()

# 添加参数及其格式
parser.add_argument('--file_name', type=str, default='123', help="print file name")
parser.add_argument('--seed', type=int, default=42, help="set seed")

# 创建参数解析器用于获取参数
args = parser.parse_args()
print("filename:", args.file_name)
print("seed:", args.seed)

运行命令及其输出:

PS D:\Awork\TestCode\transfomers_learning> python test.py --file_name 123456
filename: 123456
seed: 42
PS D:\Awork\TestCode\transfomers_learning> python test.py --file_name 123456 --seed 5
filename: 123456
seed: 5
PS D:\Awork\TestCode\transfomers_learning> python test.py
filename: 123
seed: 42

二、logging

用于将程序中的输出或者日志打印、保存起来,极大的方便了查看程序的运行情况。

1、输出信息到控制台

import logging

# 配置logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
                    datefmt='%m/%d/%Y %H:%M:%S', )

logger = logging.getLogger('dyh')  # 返回logger创建者信息

# 在控制台打印不同类型的信息
logger.info("common info")  # 普通信息
logger.debug("debug info")  # debug信息,只有在debug模式下才起作用,即上面的level=logging.DEBUG才会输出此条信息
logger.warning("warning info")  # warning警告信息

level=logging.INFO时的输出信息

06/07/2022 14:01:52 - dyh - INFO - common info
06/07/2022 14:01:52 - dyh - WARNING - warning info

level=logging.DEBUG时的输出信息

06/07/2022 14:03:23 - dyh - INFO - common info
06/07/2022 14:03:23 - dyh - DEBUG - debug info
06/07/2022 14:03:23 - dyh - WARNING - warning info

basicConfig参数及其作用

参数:作用
 
%(levelno)s:打印日志级别的数值
%(levelname)s:打印日志级别的名称
%(pathname)s:打印当前执行程序的路径,其实就是sys.argv[0]
%(filename)s:打印当前执行程序名
%(funcName)s:打印日志的当前函数
%(lineno)d:打印日志的当前行号
%(asctime)s:打印日志的时间
%(thread)d:打印线程ID
%(threadName)s:打印线程名称
%(process)d:打印进程ID
%(message)s:打印日志信息

2、将信息保存到文件中

import logging

logger = logging.getLogger(__name__)  # 创建日志句柄
logger.setLevel(level=logging.DEBUG)  # 设置打印日志类型
handler = logging.FileHandler("log.txt")  # 创建文件句柄
handler.setLevel(logging.DEBUG)  # 句柄日志类型
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')  # 设置日志格式
handler.setFormatter(formatter)  # 设置文件格式
logger.addHandler(handler)  # 将文件句柄添加到日志句柄中

logger.info("commom message")
logger.debug("debug info")
logger.warning("warning info")

log.txt信息,注意,log文件中并不会清除上一次的输出信息

深度学习基本实用工具

 3、将信息同时保存到文件和控制台

import logging

# 设置日志句柄信息
logger = logging.getLogger(__name__)
logger.setLevel(level=logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# 设置文件句柄信息
handler = logging.FileHandler("log.txt")
handler.setLevel(logging.INFO)
handler.setFormatter(formatter)

# 设置控制台句柄信息
console = logging.StreamHandler()
console.setLevel(logging.INFO)
console.setFormatter(formatter)

# 添加文件和控制台句柄到日志中
logger.addHandler(handler)
logger.addHandler(console)

logger.info("commom message")
logger.debug("debug info")
logger.warning("warning info")

输出信息:

文件信息和控制台信息:

深度学习基本实用工具

深度学习基本实用工具

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
上一篇 2022年6月8日 上午11:09
下一篇 2022年6月8日 上午11:12

相关推荐

本站注重文章个人版权,不会主动收集付费或者带有商业版权的文章,如果出现侵权情况只可能是作者后期更改了版权声明,如果出现这种情况请主动联系我们,我们看到会在第一时间删除!本站专注于人工智能高质量优质文章收集,方便各位学者快速找到学习资源,本站收集的文章都会附上文章出处,如果不愿意分享到本平台,我们会第一时间删除!