pytorch/python杂记——
一、解析命令行参数——argparse.ArgumentParser()
- 用处:解析命令行参数和选项的标准模块,用于解析命令行参数;
- 使用目的:在终端窗口输入训练的参数和选项;
- 示例:
parser = argparse.ArgumentParser() # 创建一个解析对象;
parser.add_argument('--exp', type=str, default='BCP', help='experiment_name') # 向该对象中添加命令行参数和选项;
args = parser.parse_args() # 进行解析;解析成功之后即可使用
args.exp #
- 常见命令行参数:
- Tips:复现模型时要注意默认值default的设置,如修改地址、部分参数的数值;
二、格式字符串函数——format
- 用法:格式字符串函数,主要通过字符串中的花括号{},来识别替换字段,从而完成字符串的格式化。
- 示例:
print("我叫{},今年{}岁。".format("小蜜",18))
#花括号的个数决定了参数的个数。但是花括号的个数可以少于参数。花括号多于参数的个数,则会报错。
三、shutil模块的文件处理——shutil.copy(src,dst)
shutil 模块中 shutil.copy()、shutil.rmtree()、shutil.move()等基本函数用法介绍!
用法:将文件 src 复制到 文件 dst 中,复制成功后返回 dst 完整路径,dst 可为文件路径或文件目录;
四、日志模块——logging
logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等。
4.1 基本配置—— logging.basicConfig
-
优点:由开发者决定输出什么信息、方式、等级;线程安全;
-
参数:
-
示例:
logging.basicConfig(filename=pre_snapshot_path+"/log.txt", level=logging.INFO, format='[%(asctime)s.%(msecs)03d] %(message)s', datefmt='%H:%M:%S')
4.2 创建Logger——logging.getLogger()
- 作用:获取/创造一个logger对象;可以给该对象起名,用于后续调用
4.3 配置流handler处理器——logging.StreamHandler()
- 作用:能够将日志信息输出到sys.stdout, sys.stderr 或者类文件对象,能够支持write()和flush()方法的对象。
- 示例:
logging.StreamHandler(sys.stdout)
- 添加到创建的logger中:
logging.getLogger().addHandler(logging.StreamHandler(sys.stdout))
4.4 不打印的输出方式之一——logging.info()
- logging 日志的级别一共有五种,且存在输出的优先级:
critical > error > warning > info > debug
- 默认情况下是不会打印 info 和 debug 级别日志的
- 示例:强制str输出arg:
logging.info(str(args))
五、sys模块
5.1 sys.stdout
- 作用:它使用其参数直接显示在控制台窗口上,了,类似于设置为write
六、pycharm给函数写注释
- 鼠标单击函数名,停留两秒,选择灯泡
- 单击
七、def getitem(self index)
- 用于实现对象的索引或列表访问,似于obj[index]时,系统会自动调用__getitem__方法。
八、图像格式操作——PIL库
仅记录所需,详细见:Python 中的 PIL 库
2.1 基础理论
- 定义:Pillow 用于图像的基本处理,由于其能够接受几乎所有的图像类型,所以可用于图像类型转换。
- 特点:由于CV不支持.gif图像,可用PIL进行读取转换类型
- 图像格式对应的模式参数
图像格式 | 模式参数 |
---|---|
彩色图像的PNG、BMP、JPG | ”RGB“ |
灰色图像的PNG、BMP、JPG | ”L“ |
2.2 格式转换——save()和convert()
- 可使用save方法和convert方法转换格式,其中,save方法不全部适用,且需要地址保存
- 语法:model和format指转换后的格式
img=PIL.Image.open(imageDir)
img.save(saveDir,format=)
imgConvert=img.convert(model)
九、super().init()
- 作用:调用父类的init方法
- 例子:Net继承nn.Module,则super(Net, self).init()是对继承自父类nn.Module的属性进行初始化
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
十、判断条件抛出异常——assert
- 作用:断定此处的条件是否是对的,如果错了,就返回问题,而不必等待程序运行后出现崩溃的情况
- 语法:
assert 判断条件语句 [, "文字说明"]
十一、抛出异常名称——arise
- 作用:抛出异常
- 用法:
raise [抛出的异常名词[("异常原因")]]
raise # 该语句引发当前上下文中捕获的异常,或默认引发 RuntimeError 异常。
raise 异常名词 # 表示引发执行类型的异常。
raise 异常名词("异常原因") # 在引发指定类型的异常的同时,附带异常的描述信息。