2023/03/28
才知道,pytorch里的torch.Tensor是默认Float。torch.tensor才可以设置dtype
前段时间记录的一些内容:
- lmdb close readonly:多进程只读的时候要设置readonly=True,lock=False
- mp.Pool在一个Dataset里没法去做多进程,因为会有self参数的传入。在外部可以。initargs中因为每个是单独的进程,所以可以用global。可以在init里让每个进程有独立的数据库连接
- np.max和np.sum,前者会慢一些,因为是条件选择
- gpu和cpu的计算精度不同,cpu是double gpu是float。所以模型放到gpu上计算出来的数据可能会有不同。
- 教训:一定要跑下源代码看下效果
- 发现向collate_fn传参的方式:pytorch中collate_fn函数的使用&如何向collate_fn函数传参。我之前一直以为没法传参。。= =。
- 教训:一定要做模块测试。不然debug很想死。
__file__可以读取当前py文件名- os.path的各种函数:
join,relpath,dirname,abspath。创建文件夹os.makedirs - 好看地输出json,加
indent=2:
with open(os.path.join(params.exp_dir, "params.json"), 'w') as fout:
json.dump(vars(params), fout, indent=2)
- debug卡死的时候看下是不是多进程num_workers不是0了