Voyager

海外院進を志す女の子

『PyTorchによる発展ディープラーニング』1-4 AWSのAMIの選び方

こんにちは、takeshiho0531です。

 

先週が東大ではA1タームという学期(??)の末で、それのちょっと前からレポートなりテストなりに追われていて久しぶりのブログ投稿になってしまいました。。

 

以前のブログでも『PyTorchによる発展ディープラーニング』に関して触れていましたが、一応一読はしました!今回はその中で初っ端から詰まってしまったAWSインスタンスの選び方について、私はどうしたのかを書いてみることにしました。

---------------------------------------

 

『PyTorchによる発展ディープラーニング』の中では1-4で選ぶインスタンス、起動のさせ方など詳しく書かれていますが、書かれた時から時間が経っているせいか、本の中で言及されているAMI(Amazon Machine Images)を見つけることができませんでした。

 

どうしたのかという結論から言うと、クイックスタートAMIから「Deep Learning AMI GPU PyTorch 1.12.1」というのを選びました。

AWSの画面のスクリーンショット

クイックスタートに入ってるくらいだからよく使われているということじゃないかなと思ったからです。このAMIに関しての説明は、

aws.amazon.com

に載っていましたが、

"Initial release of Deep Learning AMI GPU PyTorch 1.12 (Ubuntu 20.04) series. Including a conda environment pytorch for python3.9 complimented with NVIDIA Driver R510, cuda=11.6.2, cudnn=8.4.1, nccl=2.12.12, and efa=1.16.0."

とあり、conda環境でPyTorchが使えることを確認し、これにしました。

 

これに関しては他にも注意点があって、本の中ではp2.xlargeのインスタンスを起動させるように書かれていますが、スクショのところに書かれている通り、"Non-supported GPU instances: P2"と書かれています。上にリンクを貼った、AMIの説明に関するページで詳しくサポートされているインスタンスが記載されていますが、私はその中でもP3インスタンスのp3.xlargeを選びました。(私が使っていた時はP2インスタンスがサポートされてないってはっきり書かれていなかった気がしていて、実際コードを書いて

torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

としても"cpu"が返ってきてしまって??となっていたところ、

Why is the GPU not working out of the box for Deep learning AMI EC2 instance? | AWS re:Post

のページを見つけて原因がわかり、解決できたという感じでした...)

 

さらになんですが、p3.xlargeにした場合、最低でも8vCPU必要です。ですが、現在(2022.12)はどこのリージョンでも制限がとても厳しく、大体どこのリージョンでも0vCPUが上限となっており1つもインスタンスが起動できない状況だと思われます。(制限は左のリストの「制限」というところから「制限の検索」という検索窓に「インスタンス」と入れるとすぐにみれました。)

AWSのEC2の画面

なので、この制限を緩和してもらう必要があります。まずはAWS Support Centerにアクセスして、"Open Support cases"というところからCreate caseをします。

AWS Support Conterの画面

Create caseボタンを押すと画面が遷移し、"Looking for service limit increases?"をクリックします。

Looking for service limit increases?

その後は、Limit typeをEC2インスタンス、プライマリインスタンスタイプをAll P instances、New limit valueを8にして欄を埋めていって一番下のSubmitボタンを押せば大丈夫だと思います。

結論から言うと、多分このリクエストは却下されます。ですが、そこでめげずにReopen caseをして、勉強に必要でこの勉強をしないと〇〇でダメなんです😢、みたいな感じで正直に書いて、個別に対応してもらうと上限を緩和してもらえると思います。担当者の方には丁寧に対応していただき、感謝しています。

 

最後に注意点ですが、P3インスタンスはP2インスタンスよりも値段が高い(私がやっていた時はP2の3倍くらいの値段が毎時発生していた)ので、安いリージョンでインスタンスを起動することと必要ない時はインスタンスを停止し忘れないようにすることが大事だと思いますー

 

---------------------------------------

なんだかすごく長くなってしまいましたが、ただの初心者のブログですが、少しでもお役に立てれば幸いです(思い上がりか?)。読んでくださった方、本当にありがとうございます。

こういう系のブログばっかになるのもなんだか嫌だなあ。考えます。

ではでは〜👋👋

『PyTorchによる発展ディープラーニング』2-2 VOCのデータをダウンロードできない場合

こんにちは、takeshiho0531です。

訳あって『PyTorchによる発展ディープラーニング』を短期間で読了しなければいけない状況に追い込まれています(現在進行形)。早速始めたはいいものの、初っ端から非本質的な部分で詰まるところがあって時間がもったいなかったなと思った部分があったので、そこに関してどう解決したかを書いてみることにしました。

 

第1章のAWSインスタンスの部分もブログを書こうと思ってたのですが、今また問題が再燃してるのでそれが解決してから書きます。今回は第2章で使うVOCのデータセットが、VOCのサイトにアクセスできなくてダウンロードできないじゃん!ってなった時にどう解決したかを書きます。(少なくとも私が取り組んだ時期にはアクセスがずっとできませんでした。)

 

解決策は簡単で、別のサイトでVOCのデータをダウンロードできるようにしてくれている大変親切でありがたいサイトを発見したので、そこからダウンロードしました。

pjreddie.com

 

「make_folders_and_data_downloads.ipynb」のダウンロード先のURLをこのサイトのVOC2012のTrain/Validation DataのURL(http://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar)に貼り替えておけば大丈夫だと思います。

 

めちゃくちゃ親切でありがたかったので、サイト運営をされているJoseph RedmonさんのTwitterフォローしときましたw

 

ではでは〜👋👋

ブログを開設しました!

初めまして、takeshiho0531です。

ブログ開設の挨拶という感じで1回目のブログを投稿します。 (そうでもしないといつまで経っても1投稿目をしなさそうなので。)

今まで何度もブログを開設してはしばらく経って捨てて、ということをn回繰り返してきたので、このブログがいつまで存在するのかも極めて怪しいですが、気が向いたら投稿するようにしようと思います。

ジャンルとかは決めずに気が向いた対象を投稿していくつもりです。もしちゃんとブログが溜まってきたら、その時に考えます。

 

他に書くこともないので軽くだけ自己紹介しておきます。

現在東京大学理科一類の2年生で、3年生にちゃんと進級できたら工学部システム創成学科Cコースというところに進学します。何をする学科なのかを聞かれると困っちゃうので聞かないでください。何に興味があるのかっていうのも自分でもよく分からないような大学生ですが、このブログが溜まってきたら何らかの興味の方向性とかも自分で掴めるようになるのかな。

なんかこれ以上書くこともない気がしてきた、もういいや。

 

ではでは、よろしくお願いします。