如何用torch.set_num_threads调整线程数及paper reading的相关推荐

568 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

为了督促自己每天都有进步,在这里记录下每天遇到的问题和学到的新知识,作为个人回顾使用。

日记(第十四周)

20201217

关于torch.set_num_threads
torch.set_num_threads用来设置Pytorch的CPU多线程并行计算所占用的线程数,用来限制pytorch占用的CPU的量。

关于argparse
argparse是Python自带的命令行参数解析包,用来管理参数,具体可以参照这篇文章,这里只给出例子:

import argparse

def main():
    parser = argparse.ArgumentParser(description="Demo of argparse")
    parser.add_argument('-n','--name', default=' Li ')
    parser.add_argument('-y','--year', default='20')
    args = parser.parse_args()
    print(args)
    name = args.name
    year = args.year
    print('Hello {}  {}'.format(name,year))

if __name__ == '__main__':
    main()

在上面的代码中,我们先导入了argparse这个包,然后包中的ArgumentParser类生成一个parser对象(好多博客中把这个叫做参数解析器),其中的description描述这个参数解析器是干什么的,当我们在命令行显示帮助信息的时候会看到description描述的信息。
接着我们通过对象的add_argument函数来增加参数。这里我们增加了两个参数name和year,其中'-n','--name'表示同一个参数,default参数表示我们在运行命令时若没有提供参数,程序会将此值当做参数值。执行结果如上图所示。
最后采用对象的parse_args获取解析的参数,由上图可以看到,Namespace中有两个属性(也叫成员)这里要注意个问题,当'-'和'--'同时出现的时候,系统默认后者为参数名,前者不是,但是在命令行输入的时候没有这个区分接下来就是打印参数信息了。

关于load_state_dict
有关保存和加载模型的操作,具体参照这篇文章

如何读paper

推荐的论文阅读网站
寻找论文的方法:知网、google scholar、arXiv、顶会期刊等等 sci-hub(网上有专门的软件,很好用)

整理论文的软件:endnote, Mendeley(免费), Zotero, Citavi等等

论文第一次泛读要读懂的问题:
1、要解决什么问题
2、采用了什么方法
3、达到什么效果

论文的结构:
Abstruct----Introduction----Related Work----Our Work----Experiments----Discussion
Abstruct:论文介绍,阐述工作内容,创新点,效果
Introduction:研究背景意义,发展历程,提出问题
Related Work:相关算法介绍,分析缺点
Our Work:论文主要方法,实现细节
Experiments:实现步骤和结果分析
Discussion:论文结论和未来可研究方向