问题描述:

在57 服务器上跑:

python tools/run_net.py --cfg configs/Kinetics/X3D_XS.yaml NUM_GPUS 4 TRAIN.BATCH_SIZE 8 SOLVER.BASE_LR 0.0125 DATA.PATH_TO_DATA_DIR /mnt/data/geguojing/Heart_data/annotations20201112

目前这个问题没有解决,57 的服务器一直在被占用。调试不了

185 上的出现的错误是:

对比了自己的代码和测试代码:

import torch
import utils.distributed as dist
from torch.utils.data.distributed import DistributedSampler
from torch.utils.data.sampler import RandomSampler
from torch.utils.data._utils.collate import default_collate
import pdbdef manu_collate(batch):inputs, bbox = zip(*batch)inputs = default_collate(inputs)collate_bbox = [i[0] for i in bbox]return inputs, collate_bbox
class AVA_DATA(torch.utils.data.DataLoader):def __init__(self):print('heihei')passdef __getitem__(self, index):return torch.ones(3,224,224)*index, [index]# return torch.ones(3,224,224)*indxdef __len__(self):return 16class AVA_MODEL(torch.nn.Module):def __init__(self):super(AVA_MODEL, self).__init__()self.conv1 = torch.nn.Conv2d(3,64,3,1)self.tmp = None# for i in range(20):#     self.tmp[i]=0def forward(self,x,bbox,tmp):# print(x.device.index)self.tmp.append(1)if x.device.index==0:print(self.tmp)# tmp.append(1)# print(tmp)# # if 1:#     print('***start***')#     print(self.tmp)#     for j in bbox:#         self.tmp[j]=j#     print('***end***')#     print(bbox, self.tmp)# self.tmp.append(1)# print(self.tmp)# tmp.append(1)# print(tmp)# print(len(bbox))res = self.conv1(x)return resdef run(local_rank, num_proc, func, init_method, shard_id, num_shards, backend,
):# Initialize the process group.world_size = num_proc * num_shardsrank = shard_id * num_proc + local_ranktry:torch.distributed.init_process_group(backend=backend,init_method=init_method,world_size=world_size,rank=rank,)except Exception as e:raise etorch.cuda.set_device(local_rank)func()def launch_job(func, init_method='tcp://localhost:9999', daemon=False, dis=True):"""Run 'func' on one or more GPUs, specified in cfgArgs:cfg (CfgNode): configs. Details can be found inslowfast/config/defaults.pyinit_method (str): initialization method to launch the job with multipledevices.func (function): job to run on GPU(s)daemon (bool): The spawned processes’ daemon flag. If set to True,daemonic processes will be created"""if dis:torch.multiprocessing.spawn(run,nprocs=4,args=(4,func,init_method,0,1,'nccl',),daemon=daemon,)else:func()def train():model = AVA_MODEL()cur_device = torch.cuda.current_device()model = model.cuda(device=cur_device)# model = torch.nn.DataParallel(model).cuda()model = torch.nn.parallel.DistributedDataParallel(module=model, device_ids=[cur_device], output_device=cur_device)dataset = AVA_DATA()dataloader = torch.utils.data.DataLoader(dataset,batch_size=1,shuffle=False,sampler=DistributedSampler(dataset),# sampler=None,num_workers=8,pin_memory=True,drop_last=True,collate_fn=manu_collate,# worker_init_fn=None,)tmp = []model.train()for i in range(200000000):shuffle_dataset(dataloader,i)for iter, (inputs,bbox) in enumerate(dataloader):# print(i,iter)# inputs = inputs.cuda(non_blocking=True)# res = model(inputs,bbox,tmp)for j in bbox:tmp.append(j)dist.synchronize()tmp = dist.all_gather_unaligned(tmp)if dist.get_rank()==0:print(iter,tmp)breakmodel.module.tmp = tmpfor i in range(2):for iter, (inputs,bbox) in enumerate(dataloader):# print(i,iter)inputs = inputs.cuda(non_blocking=True)res = model(inputs,bbox,tmp)# tmp.append(1)
def shuffle_dataset(loader, cur_epoch):""""Shuffles the data.Args:loader (loader): data loader to perform shuffle.cur_epoch (int): number of the current epoch."""# sampler = (#     loader.batch_sampler.sampler#     if isinstance(loader.batch_sampler, ShortCycleBatchSampler)#     else loader.sampler# )# assert isinstance(#     sampler, (RandomSampler, DistributedSampler)# ), "Sampler type '{}' not supported".format(type(sampler))# # RandomSampler handles shuffling automaticallysampler = loader.samplerif isinstance(sampler, DistributedSampler):# DistributedSampler shuffles data based on epochsampler.set_epoch(cur_epoch)
if __name__ == "__main__":tmp = dict()pdb.set_trace()for i in range(20):tmp[i]=0pdb.set_trace()launch_job(train)    # train(tmp)

发现init_method 程序里面没有定义

给init_method 一个定义:tcp://localhost:9999

查看每一个函数定义与测试代码的异同点

cfg.SHRAD_ID 0

cfg.NUM_SHARDS 1

cfg.DIST_BACKEND 为nccl

57上的nccl 的问题 不知道修改这个是不是就可以了

进到run 里面print 打印

总结下来就是:不知道改了哪里就好了

pdb去掉就好了

最好是加打印输出

slowfast 跑多卡的时候遇到问题相关推荐

  1. 老电脑跑win7卡慢的解决办法

    我的09年的ideaPad Y450,cpu:T9800 双核2.8GHz  内存:4G 1366hz 跑了几年的win7,越跑越卡,终于忍受不了,重装了xp 64位,结果64位的xp各种软件不兼容, ...

  2. 连接工作站跑机器学习(Linux命令)

    首先讲一讲可能用到的操作 1.查看当前文件夹下的文件 dir 2.返回上一/两个目录 cd - cd -/- 3.Tab 直接按Tab,可以查看当前文件下的所有东西 4.移动文件 mv 文件名 移动目 ...

  3. python修改悦跑圈数据_悦跑圈刷数据插件下载-悦跑圈刷步数插件下载5.9.2安卓版-西西软件下载...

    悦跑圈刷步数插件是一款基于跑步开发的一款刷步数app,在悦跑圈刷步数插件中小伙伴将会体验到一系列玩法非常有趣的刷步数体验到,操作难度不大想要刷步数的小伙伴不要错过了哦! 悦跑圈刷步数插件介绍: 跑步就 ...

  4. 多卡聚合路由器5G+4G是什么意思

    多张运营商4G卡的网络进行聚合,因5G网速快且发展迅速,云联芯聚合路由器已经增加5G模块,支持插入5G数据卡,那4G+5G简单来说就是支持4G卡与5G卡同时使用,即将各家运营商(联通.移动.电信)的各 ...

  5. 华数未能连接到服务器,我玩华数杭州的服务器时,进A区不卡,进B区 – 手机爱问...

    2008-04-17 我进飙车,跑城市.先进A,B 区跑时 卡的 厉害,再跑上海一点也不卡,然后再返回到A,B区跑 这时候就不 卡了, 进飙车直接跑上海地图也不 卡.不知道这是怎么一回事!! 有高手解 ...

  6. 多卡聚合路由器的工作原理

    在介绍多卡聚合路由器之前,我们不妨先来看个例子: 假如现在有1000辆小车需要从A市开往B市,需要准点到达B市地点进行集合,假设现在的道路为单车道设计,不管你是走高速省道国道什么的都好,都会堵车,想要 ...

  7. Hadoop运维记录系列(二十二)

    今天下午写了一会代码,然后帮同事解决了一个hbase相关的故障分析,定位了问题根源,觉得比较有代表性,记录一下. 先说一下问题的发生与背景. 这个故障其实是分为两个故障的,第一个比较简单,第二个相对复 ...

  8. 《Linux就该这么学》培训笔记_ch01_部署虚拟环境安装Linux系统

    <Linux就该这么学>培训笔记_ch01_部署虚拟环境安装Linux系统 文章最后会post上书本的笔记照片. 文章主要内容: 在虚拟机中安装红帽RHEL7系统 在Linux系统中找回r ...

  9. 嵌入式相关的硬件平台

    本文转载自CSDN博客:https://blog.csdn.net/qq_35999634/article/details/82924356 从左至右,性能逐渐增强; (Arduino):图中无,适合 ...

最新文章

  1. 6.Spring Security Session 管理
  2. 达摩院2022十大科技趋势发布:人工智能将催生科研新范
  3. Linux系统管理员修炼三层次
  4. 更新Android Studio 3.1.1碰到的问题
  5. vs中列表分页符代码_电脑办公技巧Excel中Ctrl+K的使用技巧(十二)/Word2016中快速删除分页符与空白页的方法...
  6. 4条实用小建议,送给初入NLP领域的你
  7. 小天才被限定使用时长的应用_家庭腕上社交新场景,OPPO Watch、小天才开启暖心联动...
  8. Try Redis : Redis 入门教程
  9. html请求接口_软件测试学习教程——LoadRunner实现接口测试
  10. AutoCAD使用技巧
  11. bzoj 1640 bzoj 1692: [Usaco2007 Dec]队列变换(后缀数组)
  12. 并发控制技术手段之多版本(三)
  13. String 和 InputStream 互转方式
  14. 微信小程序转发,发送朋友圈(uni-app)
  15. Atitit 前端算法技术体系总结 目录 1. 3. Ui方面的算法 3 2 3.1. 软键盘算法 计算软键盘上下左右按键位置 3 2 3.2. Sprire生成随机位置算法 随机数算法 3
  16. 树莓派 摄像头 html5,视频演示如何给树莓派安装摄像头模块
  17. 打开MSDTC的方法(图解)
  18. 数模学习(模糊数学篇)——模糊聚类(python实现)
  19. matlab计算abc三相短路电流_供配电系统设计需要用到的计算公式(结合手册简要总结)...
  20. easyar 实现模型的旋转和缩放

热门文章

  1. [树莓派] : 如何用树莓派利用摄像头进行简单的人脸识别【how to use IR camera +raspberrypi 3b+ in python】
  2. python3记录(3)-os.walk() 方法
  3. Qt图形测绘窗口部件介绍
  4. 毕设日志——配置服务器与测试gpu版本的tf faster rcnn代码
  5. Service Mesh服务网格:8种方式简化微服务部署
  6. 第二届大数据世界论坛 聚焦行业需求
  7. d3-force 力导图 源码解读与原理分析【一】
  8. 修改SR4000自带软件,支持opencv
  9. 转ubuntu下中文乱码解决方案(全)
  10. 限制Nagios报警次数