機械学習のためのLinuxコマンド[入門]

ディレクトリ・ファイルの管理
-
pwd
: 現在の作業ディレクトリの名前を表示 -
ls
: ディレクトリ名のリストを表示ll
/ls -l
ファイル/ディレクトリの権限、リンク数、所有者、グループ、サイズ、最終変更時間などの詳細情報を表示。
ls xxxx
指定されたディレクトリ名内のリストを表示。 -
tree -L 2 -a
: ディレクトリ構造を表示。階層の深さ-L 2
を指定、-a
隠しファイルまで表示。 -
rm -rf xxxx
: 指定したファイルやディレクトリを再帰的に(ディレクトリ内のすべてのファイルやサブディレクトリを含む)削除。 -
touch xxxx
: 新しい空のファイルを作成、または既存のファイルのタイムスタンプを更新。

トレーニングプロセスの管理
-
top
/htop
: トレーニングプロセスのリソース使用状況の監視
デフォルトでCPU使用率が高い順にプロセスが表示。また、メモリ使用量、実行時間、使用者などの詳細情報を表示
-
ps aux | grep “[process-id]”
: 特定のトレーニングジョブの検索
ps aux
: "process status" - 実行中のすべてのプロセスを表示
aux
:ps
コマンドのオプション-
a
:全ての端末からのプロセスを表示 -
u
:ユーザー/所有者に関連する詳細な情報を表示 -
x
:制御端末を持たないプロセスも表示
grep “xxxx”
: "global regular expression print” - 特定のテキストを検索
-
-
kill [option] [process-id]
: トレーニングプロセスの停止
一つのプログラムが複数のタスクを同時に実行している場合、それぞれのタスクは個別のプロセスとして管理
ここでの[option]
は、送信するシグナルの種類を指定(省略)。指定がない場合は、TERMシグナル(プロセスに終了を要求するシグナル)が送信。

データと結果の操作
-
cat [ファイル名]
: ファイルの内容を標準出力(通常は画面)に表示。
複数のファイルを指定するとそれらの内容を連続して表示。
例: "file1.txt"と"file2.txt"を表示
cat file1.txt file2.txt
-
head -n [行数] [ファイル名]
: ファイルの先頭部分を表示
例: "sample.txt"の先頭5行を表示
head -n 5 sample.txt
-
less
: ファイル内容をページ単位で表示
( 大きなファイルを扱う際に便利 )
例: "sample.txt"をless
で表示
less sample.txt
less
内での基本的な操作は以下:
-
space
: 次のページへ移動 -
b
キー: 前のページへ移動 -
q
キー:less
を終了
Vim コマンド*
vim xxxx
: ファイル内編集操作
vim コマンド集

データの転送と共有
-
scp
: 2つの場所間でファイルやディレクトリを安全に転送
"Secure Copy"- SSH(Secure Shell)の暗号化技術を使用したファイル転送方法-
ローカルからリモートへの転送:
scp [options] [local file] [username@remote host]:[remote directory]
ローカルシステム上の
[local file]
をリモートマシンの[remote directory]
へコピー。ここで、[username@remote host]
は接続先のリモートマシンのユーザー名とアドレス。 -
リモートからローカルへの転送:
scp [options] [username@remote host]:[remote file] [local directory]
リモートマシン上の
[remote file]
をローカルシステムの[local directory]
へコピー。 -
リモートからリモートへの転送:
scp [options] [username@source host]:[source file] [username@destination host]:[destination directory]
一つのリモートマシン(
[username@source host]
)上の[source file]
を別のリモートマシン([username@destination host]
)の[destination directory]
へコピー。
[options]
においてよく使われるものは以下:-
r
: ディレクトリ全体を再帰的にコピー。 -
p
: 元のファイルのタイムスタンプとパーミッションを保持。 -
q
: コピー中の進行状況の表示を無効。
-
-
chmod
: ファイルやディレクトリのアクセス権限の制御
"Change Mode” - ファイルやディレクトリのアクセス権限を変更chmod [権限設定] [ファイル名]
権限設定
読み取り(r)、書き込み(w)、実行(x)の3つの権限を
所有者(u)、グループ(g)、その他のユーザー(o)のいずれかに対して設定。例: 所有者に読み取りと書き込みの権限を与える
chmod u+rw xxxx
所有者(u)に対して読み取り(r)と書き込み(w)の権限を追加(+)。
例: 全てのユーザーから実行権限を削除する
chmod a-x xxxx

GPUリソースの監視/管理
-
nvidia-smi
: "NVIDIA System Management Interface"[1]*
以下は、
nvidia-smi
の主な表示項目:
- Driver Version: GPUドライバのバージョン
- CUDA Version: CUDAのバージョン
- Process name: GPUを使用しているプロセス名
- GPU Name: GPUのモデル名
- Memory Usage: GPUメモリの使用状況
- GPU-Util: GPUの使用率をパーセンテージ
例 : GPUの使用状況を一定間隔で表示
nvidia-smi -l # 5秒ごとにGPU使用状況( デフォルトで5秒間隔 )
nvidia-smi -l 1 # 1秒毎にGPU使用状況 ( `l`の後の秒数により間隔を指定 )
nvidia-smi -lms 500 # 500ミリ秒(0.5秒)毎にGPU使用状況
nvidia-smi -l 1 --query-gpu=timestamp,utilization.gpu,memory.used --format=csv
特定のGPUの情報(タイムスタンプ、GPU利用率、使用メモリ)を1秒ごとにCSV形式で表示を管理・監視。

実験管理
-
Weights & Biases*
モデル学習結果を追跡・可視化・共有とより広範なツールの統合
-
TensorBoard*
モデル学習結果を可視化 (Tensorflow, Pytorchも含む)