5-11日

1.linux查看cpu数目

https://www.cnblogs.com/emanlee/p/3587571.html,这个讲的非常详细了。

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq

# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l

2. transformer的一个通用教程

https://towardsdatascience.com/https-medium-com-chaturangarajapakshe-text-classification-with-transformer-models-d370944b50ca

我觉得也能从中学到内容吧,

每一个example都要经过长截短补,然后token转换为输入特征吧。

3.python csv模块

https://www.cnblogs.com/qican/p/11122206.html

import csv
with open('eggs.csv', newline='') as csvfile:
    spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
    for row in spamreader:
        print(', '.join(row))

读取文件需要先open,然后reader那个open的文件对象,感觉不是很方便啊。写入的时候也比较麻烦,现在用的比较多的是pd.read_csv吧。

4.UTF-8 和 GBK 编码转换

5.sys.version_info

>>> sys.version_info
sys.version_info(major=3, minor=7, micro=5, releaselevel='final', serial=0)
>>> sys.version
'3.7.5 (default, Oct 25 2019, 15:51:11) 
[GCC 7.3.0]'

可以发现上面的会输出python的版本号,比较详细,而下面的会输出一个总的python版本号,总之都是查看当前环境中的py版本的。

https://www.pythonheidong.com/blog/article/189983/

6.python multiprocessing模块

https://docs.python.org/zh-cn/3.7/library/multiprocessing.html#module-multiprocessing

from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    with Pool(5) as p:
        print(p.map(f, [1, 2, 3]))

这是一个简单的例子,它提供了一种方便的方法,可以跨多个输入值并行化函数的执行,跨进程分配输入数据(数据并行)。

//并行执行函数,跨进程分配数据。

Pool 类表示一个工作进程池。它具有允许以几种不同方式将任务分配到工作进程的方法。

可以看到上面map函数中,第一个参数为要并行处理的函数,第二个为输入函数的参数。 

8.Gradient overflow.  Skipping step, loss scaler 0 reducing loss scale to 32768.0

https://github.com/NVIDIA/apex/issues/318,这里面有同样的问题,这个是关于fp16精度apex包的,

但是回答说:在训练开始时,随着标定值的校准,该消息可能会连续多次出现。所以就不必在意。

10.RuntimeError: cudnn RNN backward can only be called in training mode

https://blog.csdn.net/dongwanli666/article/details/103072635

https://discuss.pytorch.org/t/cudnn-rnn-backward-can-only-be-called-in-training-mode/37622/2

这两个回答都是说要调用model.train()回来,是ok的,可以解决。

11.wandb 包

https://www.cnpython.com/pypi/wandb,也是一个用来记录模型训练过程中的参数的包,并且可以上传到云端,通过浏览器多人访问?

import wandb
# Your custom arguments defined here
args = ...

wandb.init(config=args, project="my-project")
wandb.config["more"] = "custom"

def training_loop():
    while True:
        # Do some machine learning
        epoch, loss, val_loss = ...
        # Framework agnostic / custom metrics
        wandb.log({"epoch": epoch, "loss": loss, "val_loss": val_loss})

这样的话就可以记录一些实验变量,具体怎么使用我还没有在实验中用过。 

原文地址:https://www.cnblogs.com/BlueBlueSea/p/12874380.html