Python笔记
1. if name == 'main’的意思
if __name__ == '__main__'
#的意思是:当.py文件被直接运行时if __name__ == '__main__'之下的代码块将被运行
#当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行。
2. python的 argparse 模块
可以轻松编写用户友好的命令行接口。程序定义它需要的参数,然后 argparse 将弄清如何从 sys.argv 解析出那些参数。 argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。
主要有三个步骤:
1)创建 ArgumentParser() 对象;
2)调用 add_argument() 方法添加参数;
3)使用 parse_args() 解析添加的参数;
分为添加位置参数-positional arguments和可选参数-optional arguments
添加位置参数声明的参数名前缀不带-或–,按照顺序进行解析,在命令中必须出现,否则报错。
添加可选参数声明的参数名前缀带-或–,前缀是-的为短参数,前缀是–是长参数,两者可以都有,也可以只有一个,短参数和长参数效果一样。可选参数的值接在位置参数的后面,不影响位置参数的解析顺序。
3. if x / if not x
if x:
如果X为非None、非零数值、非空字符串、非空list、非空dict(字典),就执行里面的语句;
if not x:
如果X为None、零数值、空字符串、空list、空dict(字典),就执行里面的语句
4. os.path.exists()
检查目录或文件是否存在
5. torch.randn(*sizes,out=None) → Tensor
返回一个张量,包含了从标准正态分布(均值为0,方差为1,即高斯白噪声)中抽取的一组随机数。张量的形状由参数sizes定义。
6. os.path.dirname(path) / basename(path)
语法:os.path.dirname(path)
功能:去掉文件名,返回目录
语法:os.path.basename(path)
功能:返回path最后的文件名。如果path以/或\结尾,那么就会返回空值。
7. torch.from_numpy() / numpy()
numpy中的ndarray转化成pytorch中的tensor : torch.from_numpy()
pytorch中的tensor转化成numpy中的ndarray : numpy()
8. 关于with
with是python中上下文管理器,简单理解,当要进行固定的进入,返回操作时,可以将对应需要的操作,放在with所需要的语句中。比如文件的写入(需要打开关闭文件)等。
9. 关于with torch.no_grad()
在使用pytorch时,并不是所有的操作都需要进行计算图的生成(计算过程的构建,以便梯度反向传播等操作)。而对于tensor的计算操作,默认是要进行计算图的构建的,在这种情况下,可以使用 with torch.no_grad():,强制之后的内容不进行计算图构建。