見出し画像

サーバー上で学習させる時のメモいくつか

ssh接続が切れた後もdocker内で学習させる方法
1. サーバーに入る
2. screenコマンドで新規仮想セッションを立ち上げる
3. 新規セッション内でdockerコンテナに入り、モデルを学習させる
4. Ctrl + aを打って、その後dを打つとデタッチ(元のセッションに戻る)
5. screen -rでアタッチ(仮想セッション状況を確認出来る)

1.
(ローカル$) ssh ~
2.
(サーバー$) screen
<Enterでscreenについての説明が閉じる>
3.
(サーバー$) docker run ~
(docker#) python train.py
4.
(docker#) ::学習中::
<Ctrl+a, dでデタッチ>
(サーバー$)
5.
(サーバー$) screen -r
(docker#) ::学習中::

pytorchで(じゃなくてもいいか)tensorboardを使う方法
(これは理解が甘い)
1. サーバーに入る + (-L 6006:localhost:6006)
2. dockerコンテナに入る + (-p 6006:6006) + <イメージ名>
(3. pip install tensorboardでtensorboardを使えるようにする)
4. tensorboard --logdir <tensorboardのパス名> --host 0.0.0.0
5. コンソール画面上に表示されたアドレスをブラウザに貼る

1.
(ローカル$) ssh ~ -L 6006:localhost:6006
2.
(サーバー$) docker run --rm -p 6006:6006 <イメージ名>
(3.)
(docker#) pip install tensorboard
4.
(docker#) tensorboard --logdir <path> --host 0.0.0.0

サーバー上のdockerコンテナ内でjupyter notebookを使う方法
(表現はかなり怪しい)
サーバーとdockerを繋げながらdockerコンテナに入る
→ dockerコンテナ内でjupyter notebookを起動
→ ローカルとサーバーを繋げることで、ローカルをdockerを繋げる
が基本的なイメージ
1. サーバー上からdockerコンテナに入る + (-p 8888:8888) + <イメージ名>
※ -pの後の数字はそれぞれ、<host>:<container>のポート名を表していて、使われていなければ何の数字でもいい
2. jupyter notebook --ip 0.0.0.0 --allow-rootでdockerコンテナ内でjupyter notebookを起動
※ ここでトークンがコンソール画面に表示されるが、これは一旦放置
3. ローカルから ssh -fNL 8888:localhost:8888 ~でサーバーに接続
※ <ローカルのポート>:localhost:<host>で指定してあげてる
4. ウェブブラウザに直接localhost:8888を打つと、トークンを入れる欄が出てくるので、2.で表示されたトークン部分をコピーして貼り付ける→起動

1.
(ローカル$) ssh ~
(サーバー$) docker run -p 8888:8888 <イメージ名>
2.
(docker#) jupyter notebook --ip 0.0.0.0 --allow-root
3.
<ターミナルで別タブを開く>
(ローカル$) ssh -fNL 8888:localhost:8888 ~
4.
<ブラウザに直接localhost:8888を入れる>
<トークンを求められるので、2.で表示された(token=)以下をコピペ>

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

2

Yoshikuni

しがない理系大学院生のノート エンジニアの真似をしたり細胞培養したりしてるが基本的にはお酒飲んでます
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。