【機械学習初級】Amazon SageMaker導入の手順~S3にデータをアップロード編~

はじめに

前回は、Sagemakerいじってみた1としてベースとなるノートブックインスタンスを作成するところまで紹介しました。
今回はその続きで、Jupiterノートブックを使って、S3にデータをアップロードする方法を紹介したいと思います。

記事の概要

本記事の内容は以下になります

  • S3の作成~データのアップロードまでを解説します
  • IAMロールの取得に関しても説明しております
  • 「Amazon Sagemaker」の導入時にデータアップロード方法をお探しの方やアップロード時に詰まっている方に向けて執筆しております。

S3バケット作成

まずは、データを入れるためのS3バケットを作成していきます。
S3バケットを作成するうえで、注意する点が1点あります。
それは、バケット名に「Sagemaker」を含めることです。
こうすることでノートブックインスタンスを作成する際に設定をしたデフォルトで設定されているIAMポリシーでSagemakerがS3バケットにアクセスする権限を付与することができます。

Jupiterノートブック作成

前回作成したノートブックインスタンスにJupiterノートブックを作成します。
ノートブックを作成するには、Filesタブの右上New▼をクリックします。

image.png

次に、今回はPython3を使うのでプルダウンから「Python3」を選択します。

image.png

これで、Python3のコードを書くためのノートブックが作成完了しました。
次に以下のコードをノートブックに入力して、先にセットアップをしているIAMロールを取得します。

‘bucket-name’
→ここに先に作成してあるSagemakerが含まれてるバケット名を入力します。

次に以下のコードを実行すると指定したWEBサイトからMNISTデータセットをダウンロードしてきます。

  1. ダウンロードした圧縮ファイルを解凍
  2. 内のモデルトレーニング用のデータセット
  3. モデルトレーニング後に検証するためのデータセットのデータセットをノートブックのメモリに読み込みます。

次に以下のコードを入力することで先ほど読み込んだデータセットを調べることができます。
通常この段階で、データセットを調べてデータ加工を実施しますが、今回はデータセット内の画像を表示します。

以下のコードでは、データフォーマットを変換し、S3にデータをアップロードします。

ノートブックを使って、S3にアップロードすることができました。

終わりに

今回はS3にデータをアップロードする方法を紹介していきました。
コードをコピーして実行していくだけなので、難しいと思うポイントは少なかったです。

今後は時間のある際に、アップロードをしたデータをトレーニングしていきたいと思います。
最後まで読んでいただきありがとうございました。