わかりやすい機械学習-サーバーを使用したトレーニングモデルの詳細な説明

この記事は「新タレントクリエーションセレモニー」イベントに参加しました

ソフトウェアのダウンロードとインストール

必要なソフトウェア(これは個人使用またはその他用です)

1.xshell xshellを使用してサーバーに接続し、指示操作を実行します(sshなどの他のソフトウェアも使用できます)ダウンロードとインストール:無料でオンラインで見つけることができます(正規品をサポートすることをお勧めします)。ダウンロード後、指示に従ってください。インストール。

2. xmanagerのダウンロードとインストール:グラフィカル機能を使用しない場合、インストールすることはできません。同様に、インターネット上で無料のものを見つけることができます(正規バージョンをサポートすることをお勧めします)。ダウンロード後、インストール手順に従ってください。それ。

3. pycharmのダウンロードとインストール:コミュニティバージョンとプロフェッショナルバージョンから選択できます。コミュニティバージョンは無料で、一般的な機能がサポートされています。プロフェッショナルバージョンは1か月間試用でき、以下の登録コードが必要です。 -上。ここでは、コードとpycharmでトレーニングされたウェイトをアップロードおよびダウンロードするだけで済み、コミュニティバージョンの機能で十分です。

xshellを構成する

セッションマネージャー

セッションマネージャですべてのセッションを右クリックし、[新規]->[セッション]を選択します

注:ここでの新しいセッション1は、作成者が作成したセッションであり、最初に使用するためのそのようなセッションはありません。

新しいセッション

セッション名(または入力しない)、ホスト、ポート番号を入力します

set-xmanager

SSHからXmanagerへのトンネルオプションでX11転送を設定します

xshellを使用してサーバーに接続します

学校のイントラネットなどのイントラネットサーバーを使用している場合は、最初にイントラネットにログインする必要があります。

ユーザー名を入力して下さい

ユーザー名を入力して下さいパスワードを入力する

パスワードを入力する接続に成功しました

接続に成功しました

pycharmを設定する

コミュニティバージョンとプロフェッショナルバージョンの両方を構成でき、場所が異なる場合があります。ここでは、プロフェッショナルバージョンが構成に使用されます。

メニュー

まず、メニューで[ツール]を見つけて選択します

構成

「デプロイメント」->「構成」を選択します

SFTP

「+」記号を選択->SFTP

アカウントパスワード

SSH設定後に「...」をクリックしますssh構成

ホスト入力アドレス、ユーザー名入力ユーザー名、PassWord入力ユーザーパスワード、ポート番号がデフォルトの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);
复制代码

短所:上記から、それぞれの異なるWebページのコードが異なり、より面倒であることがわかります。そこで、オフライン操作を実現するためのnohupコマンドの使用を紹介します。

nohupコマンド:nohupコマンドは、xshellまたはsshのコマンドラインで実行する必要があります。実行するコマンドの前にnohupと入力して、コマンドをオフラインで実行します。pythonファイルを実行するコマンドも同じです。このコマンドを実行すると、画面出力はありません。nohupが追加されていない場合の画面出力は、現在のフォルダーに生成されたnohup.outファイルに出力されます。nohup run実行、xshellを閉じるか、シャットダウンすることもできます。サーバーは単独で実行します。

nohup.outはメモリを消費しすぎます

トレーニングモデルの数が多すぎると、nohup.outは多くの文字を格納し、多くのスペースを占有します。ここでの私のアプローチは、実行が開始されたことを確認した後でnohup.outファイルを削除して、正常に実行できるようにすることです(原則が何であるかわからないため、すべてのサーバーがこれをサポートしているかどうかはわかりません)。 nohupについて心配する必要はありません。あまりにも大きな問題です。

nohupプロセスを強制終了します

まず、プロセスを見つけてコマンドを入力する必要があります。

ps aux | less 
复制代码

実行結果:処理する2番目の列はプロセスのID(PID)であり、最後の行はコマンド(COMMAND)であることに注意してください。Pythonプログラムの場合、コマンドは次のようになります。python program name parameter andその後、プロセスを強制終了します

kill -9 PID
复制代码

おすすめ

転載: juejin.im/post/7078464404924137503