- 博客(9)
- 收藏
- 关注
原创 Contiguous()到底怎么用,什么时候用
contiguous原意:邻近的,一个tensor是.is_contiguous() is True,说明。Tensor多维数据的存储,是以多维数组按照行展开成一维数组,作为元数据,原信息里保存了他的形状。调用数据的时候,是按照 stride 取数据的。比如一个三行五列的Tensor,他的stride就是[5,1]。指的是取该维度下一个数据时,要走的步长。
2024-12-10 15:53:07
611
原创 DDP(DistributedDataParallel)自用笔记
Pytorch DistributedDataParallel(DDP)教程一:快速入门理论篇_distributeddataparallel教程-优快云博客。
2024-12-10 14:57:54
174
原创 查看网络grad
模型打印出来前面带标号的,如(0),可以直接用下标[0]访问。如果前面是带名字的,如(con1),则需要用属性名.conv1访问。
2024-12-04 21:42:46
179
原创 冻结部分网络
当我们将需要固定的参数的 requires_grad 属性设置为 False 时,这些参数在计算梯度时就不会被更新,这时不需要使用 torch.no_grad()。我的loss输入的一部分with torch no_grad了,导致报错,改为这一部分只传入x.data,当成一个常数参与loss的计算中就可以。所以 with torch.no_grad()尽量放在网络前面层,不用放在最后面的层,固定fc2,梯度会导致无法传播到fc1,导致报错。参与loss计算的所有参数都要有梯度才行。1.将不更新的参数的。
2024-12-04 21:27:41
647
原创 RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one.
有一些网络定义了但是没有经过loss backward,查看网络定义代码,找出init了,但是没有在forward中使用的,删掉就行。我这里是block的层数,在config中多定义了,实际上只用了2个block。
2024-12-01 17:59:15
158
原创 远程服务器kill不干净
是因为当时在kill进程的时候没有kill干净,因为运行程序父进程会创建很多子进程,可能只kill了子进程,导致有一些其他子进程残留(eg. 读取数据的....)起因是nvitop查看显卡占用时发现一个卡一直有个程序占用显存,USER是N/A,用kill -9 -PID清除,又显示该进程不存在。查看没有被kill干净的进程,一般小号是父进程,大号是子进程。kill -9 -PID清理完就好了。
2024-11-21 22:15:48
97
原创 RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one.
暂未解决。
2024-11-14 02:40:09
124
原创 TypeError: ms_deform_attn_backward(): incompatible function arguments. The following argument types
运行vit-adapter代码时,遇到multi-scale deform attention模块,报错:暂未解决。
2024-11-12 22:20:56
252
原创 RuntimeError: Default process group has not been initialized, please make sure to call init_process_
运行BEiT相关代码,出现没有init_process错误,但确实各个组件都init了。一开始以为是没有torch.distributed.init_process_group(),加上代码以后仍报错。查资料发现是多进程在1GPU上运行时,model中的nn.SyncBatchNorm不能正常运行,把nn.SyncBatchNorm改成nn.BatchNorm2d就可以了。
2024-10-28 17:16:57
602
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人