SageMaker-讓自己的訓練上雲端

更新 發佈閱讀 5 分鐘

一.引言

  上回練習了一個官方示例,但其中對於一些細節沒有練習到的感覺,這次我們實際將之前練習的風格轉換訓練推上去看看,看是否能體驗到更多細節。

二.事前規劃

  既然現在需要使用自己的資料,就得好好規劃,這次希望將成本壓制在免費方案的條件下(或是最低限度),大致需要符合以下內容 :

  • 訓練資料及相關產出資料不能超出S3中的5G免費額度
  • 程式碼及訓練相關檔案不能超過筆記本實例的5G限額
  • 訓練時使用 ml.m5.xlarge 執行個體且不超過50小時
  • 筆記本不能開啟超過250小時(*記得確實停止才不會算時間)

  再來因為筆記本一開就會計時,所以這次將在本機端修改完再一次上傳到筆記本,考慮到只有5G,這次就選擇 Vocus-StyleTransfer-V1 來練習,第一版本的風格轉換只需要兩張圖,且訓練上也不會太久,這次修改大致規劃成下列模式 :

StyleTransferV1 ┬ TrainImg
| ├​ Content.jpg
|​ └ Style.jpg
├ Utils
| ├ __init__.py
| └ common.py
├ VGG19PreTrain
| └ vgg19.pth
├ ResultImg
└ Transform.py

三.實際操作

  首先先上傳這些檔案到筆記本內

raw-image

  然後來處理啟動的部分,新增一個 Transform.ipynb,其中原本想要直接使用上傳到筆記本內的圖片,但嘗試後沒想到不行,只能透過S3容器,所以只能先將圖片先上傳到S3後,再指定對應路徑進行訓練。

import sagemaker
from sagemaker.pytorch import PyTorch

sagemaker_session = sagemaker.Session()
region = sagemaker_session.boto_region_name

bucket = sagemaker_session.default_bucket()
prefix = "sagemaker/StyleTransformV1"

role = sagemaker.get_execution_role()

style_path = 's3://S3-bucket-name/TrainImg/Style'
content_path = 's3://S3-bucket-name/TrainImg/Content'

estimator = PyTorch(
entry_point="Transform.py",
role=role,
py_version="py310",
framework_version="2.2.0",
instance_count=1,
instance_type="ml.m5.xlarge",
output_path="s3://S3-bucket-name/Result/",
hyperparameters={"num-steps": 150},
dependencies=['Utils','VGG19PreTrain']
)

estimator.fit({"content": content_path,
"style": style_path})

  並調整存圖從存本機改成上傳到S3

def save_image_to_s3(tensor, s3_bucket, s3_key):
# 將張量轉換為 PIL 圖片
image = tensor.cpu().clone()
image = image.squeeze(0)
image = unloader(image)

# 將圖片保存到內存中的 BytesIO 對象
buffer = io.BytesIO()
buffer.seek(0)

# 將圖片上傳到 S3
s3.upload_fileobj(buffer, s3_bucket, s3_key)

save_image_to_s3(model_output,'S3-bucket-name','Result/result.jpg')

  確認所有都沒問題後,即可使用Shift+Enter運行Transform.ipynb的整個區塊,S3儲存區便會產出結果圖,同樣相關程式碼於Github

raw-image

四.結語

  本次成功將之前的程式碼推上 SageMaker 進行訓練,對於基本使用有了一定的了解,實際用下來雖然在存儲上有著一定的規定,但在環境及訓練上相對都相對簡單,並且使用上邏輯也足夠清晰,接下來下篇應該會繼續探討 SageMaker 提供的其他功能,讓我們下篇再見。

留言
avatar-img
留言分享你的想法!
avatar-img
貓貓學習筆記
10會員
21內容數
AI、電腦視覺、圖像處理、AWS等等持續學習時的學習筆記,也包含一些心得,主要是幫助自己學習,若能同時幫助到不小心來到這裡的人,那也是好事一件 : )
貓貓學習筆記的其他內容
2024/05/22
  這回來介紹 AWS 在目前生成式 AI 各種群魔亂舞下推出的 Bedrock 服務,其官網說明可以快速且傻瓜式的部屬生成式 AI 到你的應用上,看看是不是如其所述的功能強大。
Thumbnail
2024/05/22
  這回來介紹 AWS 在目前生成式 AI 各種群魔亂舞下推出的 Bedrock 服務,其官網說明可以快速且傻瓜式的部屬生成式 AI 到你的應用上,看看是不是如其所述的功能強大。
Thumbnail
2024/05/21
  前陣子我花了一些時間學習 SageMaker 的相關使用,但除了 SageMaker外,AWS 中尚有大量的機器學習相關服務,剛好趁此機會好好的統整分類一下,後續也能作為選擇學習目標的依據。
Thumbnail
2024/05/21
  前陣子我花了一些時間學習 SageMaker 的相關使用,但除了 SageMaker外,AWS 中尚有大量的機器學習相關服務,剛好趁此機會好好的統整分類一下,後續也能作為選擇學習目標的依據。
Thumbnail
2024/05/20
  在上篇我們介紹了 SageMaker 中 Pipeline 的使用方法,其中的 TuningStep 功能,能夠讓我們能夠指定一連串參數組合進行實驗比對,最終找出最適合的參數組合
Thumbnail
2024/05/20
  在上篇我們介紹了 SageMaker 中 Pipeline 的使用方法,其中的 TuningStep 功能,能夠讓我們能夠指定一連串參數組合進行實驗比對,最終找出最適合的參數組合
Thumbnail
看更多
你可能也想看
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
還在煩惱平凡日常該如何增添一點小驚喜嗎?全家便利商店這次聯手超萌的馬來貘,推出黑白配色的馬來貘雪糕,不僅外觀吸睛,層次豐富的雙層口味更是讓人一口接一口!本文將帶你探索馬來貘雪糕的多種創意吃法,從簡單的豆漿燕麥碗、藍莓果昔,到大人系的奇亞籽布丁下午茶,讓可愛的馬來貘陪你度過每一餐,增添生活中的小確幸!
Thumbnail
由於去年我是直接從JS直播班出發的,想當然沒參加過體驗營這類的短期嘗鮮課程,就抱著試試看的心態來體驗看看了,也因為我本身有一些些基礎了,這次就果斷幫自己加碼擔任志工,多多少少能幫助到剛開始就卡住的同學,希望能借著多次的經驗累積來增加我的經歷。
Thumbnail
由於去年我是直接從JS直播班出發的,想當然沒參加過體驗營這類的短期嘗鮮課程,就抱著試試看的心態來體驗看看了,也因為我本身有一些些基礎了,這次就果斷幫自己加碼擔任志工,多多少少能幫助到剛開始就卡住的同學,希望能借著多次的經驗累積來增加我的經歷。
Thumbnail
我們根據過去工作坊中的經典課程整理出一系列的在家指引。希望能協助各地的學生在家練習自我覺察,進而開闊自己更多的可能性🌟
Thumbnail
我們根據過去工作坊中的經典課程整理出一系列的在家指引。希望能協助各地的學生在家練習自我覺察,進而開闊自己更多的可能性🌟
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News