Posted at

Ubuntuローカル環境で教師データを作りたいからスワップ領域を50GB拡張した

最近終えたとある機械学習 (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