日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

快速提交Slurm訓練任務

本文為您介紹如何提交Slurm類型的訓練任務。

前提條件

提交Slurm類型的訓練任務

步驟一:準備訓練腳本

準備訓練腳本文件mnist_train.py,并上傳到已創建的對象存儲OSS存儲空間中,詳情請參見控制臺快速入門。本任務使用的腳本文件示例內容如下:

import tensorflow as tf
from tensorflow.keras import datasets, layers, models

# 加載MNIST數據集。
(train_images, train_labels), (test_images, test_labels) = datasets.mnist.load_data()

# 歸一化數據集。
train_images, test_images = train_images / 255.0, test_images / 255.0

# 增加一個通道維度。
train_images = train_images[..., tf.newaxis]
test_images = test_images[..., tf.newaxis]

# 構建模型。
model = models.Sequential([
    layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.MaxPooling2D((2, 2)),
    layers.Conv2D(64, (3, 3), activation='relu'),
    layers.Flatten(),
    layers.Dense(64, activation='relu'),
    layers.Dense(10)
])

# 編譯模型。
model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

# 創建TensorBoard回調。
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir="/mnt/test/mnist_logs", histogram_freq=1)

# 訓練模型。
model.fit(train_images, train_labels, epochs=5,
          validation_data=(test_images, test_labels),
          callbacks=[tensorboard_callback])

步驟二:提交訓練任務

  1. 進入新建任務頁面。

    1. 登錄PAI控制臺

    2. 在左側導航欄單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應工作空間內。

    3. 在工作空間頁面的左側導航欄選擇模型開發與訓練 > 分布式訓練(DLC),在分布式訓練(DLC)頁面中單擊新建任務,進入新建任務頁面。

  2. 在新建任務頁面,配置以下關鍵參數,其他參數配置說明,請參見創建訓練任務

    參數

    描述

    基本信息

    任務名稱

    自定義任務名稱,例如mnist_cnn_tb。

    環境信息

    節點鏡像

    基于Linux操作系統的鏡像,無其他特殊要求。本方案使用的鏡像為tensorflow-training:2.13-gpu-py310-cu122-ubuntu22.04

    掛載配置

    當腳本文件過大時,您可以選擇采用掛載的方式,將腳本文件掛載到容器的指定目錄下進行操作。

    本任務以對象存儲(OSS)掛載為例,為您說明如何進行掛載配置:

    單擊添加,掛載類型選擇對象存儲(OSS),并配置以下參數:

    • OSS:選擇腳本文件mnist_train.py所在的對象存儲OSS的存儲路徑。

    • 掛載路徑:表示將腳本文件掛載到DLC容器的指定路徑。例如/mnt/test

    啟動命令

    任務需要執行的命令:

    • 必須以#!/bin/bash開頭。

    • 系統允許自定義SBATCH參數配置,但建議避免手動設定資源分配參數,因為平臺已自動化該過程,能根據需求動態分配資源。

      # 支持。
      #SBATCH --job-name=mnist_cnn_tb    # 作業名。
      #SBATCH --output=/mnt/test/mnist_train_%j.out    # 標準輸出與錯誤輸出的文件名。
      # 不建議使用,不保障正確性。
      #SBATCH --cpus-per-task=<N>    # 指定每個任務請求的CPU核心數。
      #SBATCH --mem=<M>    # 指定所需的內存量,單位為MB。
      #SBATCH --mem-per-cpu=<M>    # 每個CPU核心的內存需求。
      #SBATCH --gres=<resource>:<N>    # 請求特定類型的資源,例如GPU(如gpu:1)或其他通用資源。
      #SBATCH --nodes=<N>    # 指定請求的節點數。
      #SBATCH --ntasks=<N>    # 指定總共要運行的任務數。
      #SBATCH --ntasks-per-node=<N>    # 每個節點要運行的任務數。
      #SBATCH --partition=<partition>    # 指定要提交作業的分區。
      #SBATCH --time=<time>    # 指定作業的最大運行時間。
      #SBATCH --account=<account>    # 指定要使用的賬戶。

    本任務使用的啟動命令如下所示:

    #!/bin/bash
    #SBATCH --job-name=mnist_cnn_tb   			# 作業名
    #SBATCH --output=/mnt/test/mnist_train_%j.out  		# 標準輸出與錯誤輸出的文件名
    
    # 該命令啟動訓練腳本。 
    /usr/bin/python3  /mnt/test/mnist_train.py

    資源信息

    資源來源

    本任務選擇公共資源。您也可以根據需要選擇其他類型的資源。

    框架

    選擇Slurm

    任務資源

    需要分別配置Master和Worker資源,本任務資源配置如下:

    • 節點數量:配置為1。

    • 資源規格:配置為ecs.g6.xlarge。

    保留時長

    建議將任務執行完成后的實例保留時長設為1小時,以便在任務執行不成功時能進入容器內部進行問題排查。

    說明

    開啟任務保留會持續占用系統資源。

  3. 單擊確定

    系統將自動彈出任務預檢測對話框。image

    其中Slurm sbatch命令是系統自動生成的用于提交任務的命令。一旦任務被提交,系統將會自動將對應的腳本文件掛載到目錄/usr/config/user_script下,并按所選的資源參數來執行該腳本。

  4. 單擊仍要提交

    頁面將自動跳轉到分布式訓練(DLC)頁面,您可以在該頁面查看已成功提交的訓練任務。

管理訓練任務

您可以對已創建的Slurm類型的任務進行以下管理操作,更詳細的內容介紹,請參見管理訓練任務

  • 通過過濾框架類型,來篩選Slurm類型的任務。image

  • 查看任務詳情。

    分布式訓練(DLC)頁面,單擊目標任務名稱,進入任務概覽頁面,在該頁面查看Surm類型任務的基本信息、資源信息、環境信息以及實例信息等。image

  • 定位任務運行失敗的原因

    本任務在啟動命令中配置了錯誤輸出日志路徑/mnt/test/mnist_train_%j.out,如下圖所示:image當任務運行失敗時,您可以在任務概覽頁面的實例區域,單擊失敗實例操作列下的進入容器,在指定目錄下查看錯誤輸出日志mnist_train_%j.out。本任務示例如下圖所示,您的任務以實際為準。072063ac3d15f7eecfc1d94b81a55ea0

  • 查看任務結果

    本任務在訓練腳本中預置了如圖所示輸出路徑以保存結果。當任務運行成功后,您可以使用以下兩種方法查看任務結果:image

    • 在任務概覽頁面的實例區域,單擊目標實例操作列下的進入容器,在指定目錄下查看節點運行日志。本任務示例如下圖所示,您的任務以實際為準。ac2b77c1cec145413d953bd2ddaf743f

    • 在創建訓練任務時已掛載的對象存儲OSS的路徑中,查看任務結果。

相關文檔

分布式訓練DLC(Deep Learning Containers)是基于云原生容器服務的深度學習訓練平臺,為開發者和企業提供靈活、穩定、易用和高性能的機器學習訓練環境。您可以使用DLC提交多種類型的訓練任務,更多關于DLC的內容介紹,請參見分布式訓練(DLC)