未經(jīng)允許,本文不得轉(zhuǎn)載,vx:837007389
step1:下載專業(yè)版本的pycharm
https://www.jetbrains.com/pycharm/download/other.html
首先,你需要有個專業(yè)版本的pycharm。什么ji huo 碼可以私我,或者樣例可以看這里鏈接。
https://www.cnblogs.com/yanghailin/p/17577621.html
略
step2 配置自動同步文件夾,即遠程的工程文件和本地同步
我現(xiàn)在代碼在遠程服務(wù)器上。所以需要把遠程服務(wù)器代碼和我本地一個新建文件夾同步。
新建文件夾remote_0724_new并用pycharm打開,最新版本的pycharm2023.1.4打開空文件夾會自動新建一個main.py文件了。
2.1 Tools -> Deployment -> configuration
點左上角“+”,選擇SFTP,隨便命名一個server,“port_30975”
輸入遠程服務(wù)器ip,用戶名密碼端口號,并測試是否鏈接成功
2.2 設(shè)置同步文件夾
最右邊的Excluded Paths是不需要同步的文件夾,比如數(shù)據(jù)文件夾等不需要同步。
2.3 同步服務(wù)器上代碼到本地
這里打開多級設(shè)置,還不好截圖了,只能手機拍照了。這里在文件夾上面右擊如下:
最下面的File Transfer會顯示傳輸日志信息
代碼就同步過來了。
2.3 設(shè)置代碼同步,Tools->Deploment->Automatic Upload Always
就是你pycharm本地修改的代碼自動也在服務(wù)器上修改
這里圖上下面Browse Remote Host點開,可以在側(cè)邊欄顯示遠程服務(wù)器的文件目錄,也可以直接在側(cè)邊欄打開
代碼同步功能需要自己測試一下,比如就在pycharm修改代碼,看遠程服務(wù)器上面代碼有沒有自己同步過來。
在最下面欄,Terminal然后^可以打開遠程的終端,可以vim查看代碼是否同步過來了。
step3 配置解釋器
3.1 一般可以直接debug
File -> Settings->Project->Python interpreter->Add interpreter->On SSH
輸入密碼端口號用戶等信息,然后next,然后第4步project director and python
這里我設(shè)置的是第二個system interpreter,我遠程環(huán)境就是直接用的系統(tǒng)目錄下的python的,沒有用conda虛擬環(huán)境。
設(shè)置python的路徑,可以在遠程環(huán)境下which python看看用的哪里的python
sync folders還是設(shè)置的之前的本地和遠程的同步文件夾
這里理論上可以運行debug遠程服務(wù)器上代碼了,但是我這個比較特殊,是運行的pyorch的分布式訓(xùn)練的代碼。運行的指令是
python -m torch.distributed.launch --nproc_per_node=1 main.py
直接點運行會報錯
/usr/bin/python /code_src_debug/main.py
./logs/test
File "/_src_debug/src/data.py", line 807, in compile_data
train_sampler = DistributedSampler(traindata)
File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/distributed.py", line 65, in __init__
num_replicas = dist.get_world_size()
File "/usr/local/lib/python3.6/dist-packages/torch/distributed/distributed_c10d.py", line 625, in get_world_size
return _get_group_size(group)
File "/usr/local/lib/python3.6/dist-packages/torch/distributed/distributed_c10d.py", line 220, in _get_group_size
_check_default_pg()
File "/usr/local/lib/python3.6/dist-packages/torch/distributed/distributed_c10d.py", line 211, in _check_default_pg
"Default process group is not initialized"
AssertionError: Default process group is not initialized
Process finished with exit code 1
這里需要格外的關(guān)注pycharm第一行給我們實際運行的指令
/usr/bin/python /code_src_debug/main.py
3.2 pytorch的分布式訓(xùn)練, 可以直接跑但是不能debug
可以看到pycharm實際運行的指令少了分布式的那些指令,python -m torch.distributed.launch --nproc_per_node=1 main.py,所以加上:
Run ->Edit Configurations…,在Interpreter optiins:這欄填寫-m torch.distributed.launch --nproc_per_node=1
點運行按鈕,可以直接運行跑了??! 這回pycharm給出的運行指令是:
/usr/bin/python -m torch.distributed.launch --nproc_per_node=1 /code_src_debug/main.py
./logs/test
3.3 pytorch的分布式訓(xùn)練, 可以debug
按照上面3.2,debug運行,報錯
/usr/bin/python -m torch.distributed.launch --nproc_per_node=1 /root/.pycharm_helpers/pydev/pydevd.py --multiprocess --qt-support=auto --client localhost --port 60888 --file /code_src_debug/main.py
Traceback (most recent call last):
File "/root/.pycharm_helpers/pydev/pydevd.py", line 2016, in main
setup = process_command_line(sys.argv)
File "/root/.pycharm_helpers/pydev/_pydevd_bundle/pydevd_command_line_handling.py", line 146, in process_command_line
raise ValueError("Unexpected option: " + argv[i])
ValueError: Unexpected option: --local_rank=0
Usage:
pydevd.py --port N [(--client hostname) | --server] --file executable [file_options]
Traceback (most recent call last):
File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
exec(code, run_globals)
File "/usr/local/lib/python3.6/dist-packages/torch/distributed/launch.py", line 260, in <module>
main()
File "/usr/local/lib/python3.6/dist-packages/torch/distributed/launch.py", line 256, in main
cmd=cmd)
subprocess.CalledProcessError: Command '['/usr/bin/python', '-u', '/root/.pycharm_helpers/pydev/pydevd.py', '--local_rank=0', '--multiprocess', '--qt-support=auto', '--client', 'localhost', '--port', '60888', '--file', '/code_src_debug/main.py ']' returned non-zero exit status 1.
Process finished with exit code 1
分析: 可以看到現(xiàn)在debug模式pycharm給出的運行指令不一樣了,文章來源:http://www.zghlxwxcb.cn/news/detail-619548.html
/usr/bin/python -m torch.distributed.launch --nproc_per_node=1 /root/.pycharm_helpers/pydev/pydevd.py --multiprocess --qt-support=auto --client localhost --port 60888 --file /code_src_debug/main.py
經(jīng)過一系列折騰,終于可以了,此處省略萬字,
然后可以看到pycharm給出的debug的運行指令:文章來源地址http://www.zghlxwxcb.cn/news/detail-619548.html
/usr/bin/python /root/.pycharm_helpers/pydev/pydevd.py --multiprocess --qt-support=auto --client localhost --port 50009 --file /usr/local/lib/python3.6/dist-packages/torch/distributed/launch.py --nproc_per_node=1 main.py
Connected to pydev debugger (build 231.9225.15)
到了這里,關(guān)于pycharm 遠程連接服務(wù)器并且debug, 支持torch.distributed.launch debug的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!