记录贴:pycharm远程连接实现Yolov5

一、准备

1、pycharm专业版
2、FileZilla
3、AutoDL算力平台

二、远程连接

详细步骤在许多平台都有,不再详细描述。
连接时需要注意三个问题,记住连接时本地目录映射到了服务器哪个目录,Yolov5运行完的权重文件等都存在那里,还有连接完在Tool // Deployment // Upload那里上传自己的代码等文件,以及在pycharm下端从本地切换到远端服务器。

三、上传数据

推荐使用FileZilla上传文件,因为可以一整个文件夹上传,而且速度很快。这里需要上传train、valid、权重文件和配置文件。

3.1、修改数据路径

上传后还需要修改train.py文件里的权重文件和配置文件路径、以及配置文件data.yaml中的数据路径。如何找到路径,路径在FlieZilla中,选中文件,右键复制url,然后将端口前的那截去掉,例如:/root/voc/yolov5x.pt。

四、运行train.py

开始运行后可能会出现各种bug。

4.1 bug 1:

UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xd0 in position 43: invalid continuation byte
定位到主函数if name == ‘main’:下方好几十行,在open那里加上encoding。
修改前:

    logger.info(opt)
    with open(opt.hyp) as f:
        hyp = yaml.load(f, Loader=yaml.FullLoader)  # load hyps

修改后:

    logger.info(opt)
    with open(opt.hyp,encoding = 'gb2312') as f:
        hyp = yaml.load(f, Loader=yaml.FullLoader)  # load hyps

4.2 bug 2:AssertionError: Image Not Found

报哪个图片或者标签找不到就在云服务器中把哪个文件给删了,images和labels都要删。

4.3 bug 3:RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB

定位到主函数,batch-size那里把default改小。

4.4 bug 4:TypeError: can’t convert CUDA tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.

找到pytorch库中的tensor.py文件,定位到630行附件,加上.cpu()即可。
修改前:

return self.numpy()

修改后:

return self.cpu().numpy()

注意:
如果是本地运行出现问题,就修改本地的tensor.py。
如果是远程运行出现问题,就修改服务器的tensor.py。

五、结果

前面说了,要记得连接时本地目录映射到了服务器哪个目录,运行结果就在服务器的目录里。

六、回答自己刚学时最想问的无聊问题

问题一、数据需不需要上传

需要。

问题二、编程和运行如何实现

编程在本地编,实现在服务器实现,结果存在服务器里。

你可能感兴趣的