이해하기 쉬운 머신러닝 - 서버를 이용한 학습 모델에 대한 자세한 설명

이 글은 "신인인재창출식" 행사에 참여하였습니다.

소프트웨어 다운로드 및 설치

필수 소프트웨어(개인용 또는 기타용)

1.xshell xshell을 사용하여 서버에 연결하고 명령 작업을 수행합니다(ssh와 같은 다른 소프트웨어도 사용할 수 있음) 다운로드 및 설치: 무료 온라인을 찾을 수 있습니다(정품 지원 권장), 다운로드 후 지침에 따라 설치하다.

2. xmanager 다운로드 및 설치 : 그래픽 기능을 사용하지 않을 경우 설치할 수 없으며, 마찬가지로 인터넷에서 무료로 구할 수 있습니다.(정품 지원 권장) 다운로드 후 안내에 따라 설치 그것.

3. pycharm 다운로드 및 설치: 커뮤니티 버전과 프로페셔널 버전이 있습니다 커뮤니티 버전은 무료이며 일반 기능을 지원합니다 프로 버전은 한 달 동안 사용할 수 있으며 다음에서 등록 코드가 필요합니다 -위로. 여기에서는 pycharm으로 코드와 훈련된 가중치만 업로드 및 다운로드하면 되며 커뮤니티 버전의 기능으로 충분합니다.

xshell 구성

세션 관리자

세션 관리자에서 모든 세션을 마우스 오른쪽 버튼으로 클릭하고 새로 만들기 -> 세션

참고: 여기 새 세션 1은 작성자가 만든 세션이며 처음 사용할 세션이 없습니다.

새 세션

세션 이름(또는 아님), 호스트 및 포트 번호를 입력하십시오.

set-xmanager

SSH의 터널 옵션에서 X11 전송을 Xmanager로 설정

xshell을 사용하여 서버에 연결

학교 인트라넷과 같은 인트라넷 서버를 사용하는 경우 먼저 인트라넷에 로그인해야 합니다.

사용자 이름을 입력하세요

사용자 이름을 입력하세요암호를 입력

암호를 입력연결 성공

연결 성공

pycharm 구성

커뮤니티 버전과 프로페셔널 버전 모두 설정이 가능하며 위치가 다를 수 있으며 여기서는 프로페셔널 버전을 사용하여 설정합니다.

메뉴

먼저 메뉴에서 도구를 찾아 선택합니다.

구성

배포->구성 선택

SFTP

"+"기호 -> SFTP를 선택하십시오.

계정 암호

SSH 설정 후 '...' 클릭SSH 구성

호스트 입력 주소, 사용자 이름 입력 사용자 이름, 암호 입력 사용자 암호, 포트 번호가 기본 22 포트 번호가 아닌 경우 포트 번호를 수정해야 합니다.

테스트

비밀번호 저장을 선택하고 연결 테스트를 클릭하여 연결을 테스트하면 그림과 같이 연결이 성공한 것입니다.보기 제거 Hpst

도구->배포->원격 호스트 찾아보기를 따라 원격 호스트를 엽니다.

원격 호스트

원격 호스트 표시

SFTP 선택

아래쪽 화살표를 클릭하고 방금 구성한 SFTP를 선택합니다.

보여 주다

在这个目录下可以看到自己用户的文件夹,最好在自己的文件夹里面上传代码

文件的上传和下载只需要选中并拖拽即可,如:将代码上传到服务器,选中pycharm左侧的代码,将它拖拽到右侧需要上传到的文件夹中,如果要下载训练好的权值只需在右侧选中服务器中的权值文件拖拽到左侧文件夹即可

安装依赖包

一般情况下刚刚配置好的服务器环境的依赖包都不够满足代码的运行,所以我们训练前要先安装依赖包。

pip超时问题:有些服务器平时是不联网的,此时服务器运行的命令相当于服务器本地离线运行 解决方式:在pip前输入这段命令。 注:这段命令不能直接使用,很多地方需要改为自己环境的信息,如:写有“服务器地址”的位置,改成自己的服务器地址,(X11; Ubuntu; Linux x86_64; rv:81.0) 中也要改成服务器linux对应的版本,这些信息一般是有命令可以查到的,查不到的可以去问服务器管理员。

curl 'http://服务器地址/0.htm' -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:81.0) Gecko/20100101 Firefox/81.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2' --compressed -H 'Content-Type: application/x-www-form-urlencoded' -H 'Origin: http://服务器地址' -H 'DNT: 1' -H 'Connection: keep-alive' -H 'Referer: http://服务器地址/0.htm' -H 'Upgrade-Insecure-Requests: 1' --data-raw 'R3=1&v6ip=&DDDDD=2018405A122&upass=260613&save_me=1&0MKKey=123'
复制代码

联网后就可以正常使用pip了,但是因为很多包是外网,下载将会非常慢,所以应该使用镜像源,同时也要注意pip时包的名称 这里以opencv为例

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码

包名后面的-i https://pypi.tuna.tsinghua.edu.cn/simple就是使用了清华镜像

安装Cuda出现的问题

如何安装符合linux版本和tensorflow的方法网上已经有很多了,这里重点说明一下cudnn的问题。 由于我环境变量配置的问题导致有一些cudnn的lib在使用gpu加速时不能正常引用。这种情况下程序会报错说明在某个路径下找不到某某文件。我的做法是搜索到该文件,把该文件复制到报错的文件路径中 搜索文件的命令

locate 文件名字
复制代码

训练时间的问题

因为各个服务器都有时间限制,大概30分钟没有进行操作就会自动断开,而这个时间对于很多模型都是不够用的,所以我们要想办法延长时间,或者永久防止断开。 1.脚本 在网页右键->检查->控制台,在控制台输入脚本进行防止断开(其原理是每隔一段时间就进行一次网页操作) 这里以Colab和kaggle为例 Colab适用的脚本

function ConnectButton(){
    console.log("Connect pushed"); 
    document.querySelector("#top-toolbar > colab-connect-button").shadowRoot.querySelector("#connect").click() 
}
setInterval(ConnectButton,60000);

function closeButton(){
    console.log("close"); 
    document.querySelector("body > colab-dialog > paper-dialog > colab-sessions-dialog").shadowRoot.querySelector("#footer > div > paper-button.dismiss").click() 
}
setInterval(ConnectButton,60000);

复制代码

kaggle适用代码

function closeButton(){
    console.log("close"); 
   document.querySelector("#root > div > div > div.AppView-sc-16eb2j.kZXkZl > div.App_Body-sc-16c8j4p.hxOBfv > div.Layout_Body-sc-6piylv.bXAYPy > div > div > div > div.ToolbarContainer_Body-sc-2h8iu7.fhvgBU > button").click() 
}
setInterval(closeButton,60000);

function closeButton(){
    console.log("close"); 
    document.querySelector("#root > div > div > div.AppView-sc-16eb2j.kZXkZl > div.App_Body-sc-16c8j4p.hxOBfv > div.Layout_Body-sc-6piylv.bXAYPy > div > div > div > div.ToolbarContainer_Body-sc-2h8iu7.fhvgBU > div.DetailedStatus_Body-sc-zfwb95.fMzpPO > button > i").click() 
}
setInterval(closeButton,60000);
复制代码

단점: 위에서 볼 수 있듯이 웹 페이지마다 코드가 다르므로 더 번거롭기 때문에 nohup 명령을 사용하여 오프라인 작업을 수행하는 방법을 소개합니다.

nohup 명령: nohup 명령은 xshell 또는 ssh의 명령줄에서 실행해야 합니다.실행할 명령 앞에 nohup을 입력하여 명령을 오프라인으로 실행하고 python 파일을 실행하는 명령은 동일합니다. 이 명령어를 노업 실행실행 스스로 실행합니다.

nohup.out이 너무 많은 메모리를 차지합니다.

훈련 모델의 수가 너무 많으면 nohup.out이 많은 공간을 차지할 많은 문자를 저장합니다. 여기서 내 접근 방식은 nohup.out 파일이 실행을 시작한 것을 확인한 후 삭제하여 정상적으로 실행될 수 있도록 하는 것입니다(원칙이 무엇인지 확실하지 않으므로 모든 서버가 이를 지원하는지 확신할 수 없음). nohup.out 너무 큰 문제에 대해 걱정할 필요가 없습니다.

nohup 프로세스 죽이기

먼저 프로세스를 찾고 다음 명령을 입력해야 합니다.

ps aux | less 
复制代码

실행 결과: 프로세스두 번째 열은 프로세스의 ID(PID)이고 마지막 줄은 명령(COMMAND)입니다. 파이썬 프로그램인 경우 명령은 다음과 유사합니다: 파이썬 프로그램 이름 매개변수 및 그런 다음 프로세스를 종료하십시오.

kill -9 PID
复制代码

추천

출처juejin.im/post/7078464404924137503