最近終えたとある機械学習 (CNN, LSTM) のプロジェクトで30GBくらいの画像データをもとに教師データを作成、加工したのですが
私の社用PCはメモリ15GBだったのですぐ死んでしまっていました。
学習を回す以外にもかなりメモリ食うんですね。。
(このプロジェクトではクラウドサービスは使わず全てローカルでやってました。。)
そこで行ったことを自分の勉強用にまとめます。
実行環境
Linux (Ubuntu 14.06 LTS)
メモリ約15GB, もともと割り当てられていたスワップ領域 約2GB
CPU Core i7 x 8コア
ディスク容量は忘れましたが、少なくとも220GB以上はありました。
手順
50GBの”swapfile”という名のダミーファイルを作成
ディスク容量をよくご確認のうえコマンド叩いてくださいね。
$ fallocate -l 50G swapfile
swapfileの権限をrootのみに変更
$ sudo chmod 600 /swapfile
(失敗: swap有効化を試みる)
いきなりswapfileがswapとして認識されるわけではない
$ sudo swapon /swapfile
swapon: /swapfile: read swap header failed
スワップ領域を割り当てる
$ sudo mkswap -f /swapfile
Setting up swapspace version 1, size = 50 GiB (53687087104 bytes)
no label, UUID=(略)
swapを有効化
エラーが出なかったから上手くいったぽい
$ sudo swapon /swapfile
実際のスワップ領域の容量を確認
$ free
total used free shared
...
とりあえず耐えられる程度にはなりました。
参考リンク
https://kazmax.zpp.jp/linux_beginner/mkswap.html
http://itengine.seesaa.net/article/441296089.html
https://yukiosugiyama.com/blog/post-2369/
https://gist.github.com/koudaiii/0ed6a8558aa297af463e