MindSpore是一個全場景深度學習框架,向數據科學家和算法工程師提供了統一的模型訓練、推理和導出等接口。目前提供了Python編程范式,使用它可以更加方便地構建復雜的神經網絡模型,讓AI編程變得簡單。有著靜態圖模式和動態圖模式兩種執行模式,同時提供了統一的編碼方式,增加了靜態圖和動態圖的可兼容性,讓用戶可以隨時切換兩種模式。軟件API友好、調試難度低,高效執行的特點深受開發人員的喜愛。
軟件特色
【簡單的開發體驗】
幫助開發者實現網絡自動切分,只需串行表達就能實現并行訓練,降低門檻,簡化開發流程。
使用該深度學習、ai、人工智能框架的優勢之靈活的調試模式
【靈活的調試模式】
具備訓練過程靜態執行和動態調試能力,開發者通過變更一行代碼即可切換模式,快速在線定位問題。
使用該深度學習、ai、人工智能框架的優勢之充分發揮硬件潛能
【充分發揮硬件潛能】
最佳匹配昇騰處理器,最大程度地發揮硬件能力,幫助開發者縮短訓練時間,提升推理性能。
使用該深度學習、ai、人工智能框架的優勢之全場景快速部署
【全場景快速部署】
支持云、邊緣和手機上的快速部署,實現更好的資源利用和隱私保護,讓開發者專注于AI應用的創造。
層次結構
MindSpore向用戶提供了3個不同層次的API,支撐用戶進行網絡構建、整圖執行、子圖執行以及單算子執行,從低到高分別為Low-Level Python API、Medium-Level Python API以及High-Level Python API。
♦Low-Level Python API
第一層為低階API,主要包括張量定義、基礎算子、自動微分等模塊,用戶可使用低階API輕松實現張量定義和求導計算,例如用戶可通過Tensor接口自定義張量,使用ops.composite模塊下的GradOperation算子計算函數在指定處的導數。
♦Medium-Level Python API
第二層為中階API,其封裝了低價API,提供網絡層、優化器、損失函數等模塊,用戶可通過中階API靈活構建神經網絡和控制執行流程,快速實現模型算法邏輯,例如用戶可調用Cell接口構建神經網絡模型和計算邏輯,通過使用loss模塊和Optimizer接口為神經網絡模型添加損失函數和優化方式,利用dataset模塊對數據進行處理以供模型的訓練和推導使用。
♦High-Level Python API
第三層為高階API,其在中階API的基礎上又提供了訓練推理的管理、混合精度訓練、調試調優等高級接口,方便用戶控制整網的執行流程和實現神經網絡的訓練推理及調優,例如用戶使用Model接口,指定要訓練的神經網絡模型和相關的訓練設置,對神經網絡模型進行訓練,通過Profiler接口調試神經網絡性能。
通用場景
【快速入門】
通過一個實際樣例實現手寫數字的識別,帶領大家體驗MindSpore基礎的功能,一般來說,完成整個樣例實踐會持續20~30分鐘。
面向專家的通用場景教程之圖像分類
【圖像分類】
結合CIFAR-10數據集,講解MindSpore如何處理圖像分類任務。
面向專家的通用場景教程之情感分析
【情感分析】
構建一個自然語言處理的模型,通過文本分析和推理實現情感分析,完成對文本的情感分類。
【生態合作】
開發者體驗(昇騰環境)
在云上ModelArts AI開發平臺搶鮮體驗昇騰資源
【開源合作】
MindSpore社區期待各位開發者的加入
【高校合作】
MindSpore誠摯邀請您加入華為沃土高校教研AI扶持計劃。
基礎使用教程
一、實現一個圖片分類應用
1、處理需要的數據集,這里使用了MNIST數據集。
2、定義一個網絡,這里我們使用LeNet網絡。
3、定義損失函數和優化器。
4、加載數據集并進行訓練,訓練完成后,查看結果及保存模型文件。
5、加載保存的模型,進行推理。
6、驗證模型,加載測試數據集和訓練后的模型,驗證結果精度。
二、實現簡單線性函數擬合
回歸問題算法通常是利用一系列屬性來預測一個值,預測的值是連續的。例如給出一套房子的一些特征數據,如面積、臥室數等等來預測房價,利用最近一周的氣溫變化和衛星云圖來預測未來的氣溫情況等。如果一套房子實際價格為500萬元,通過回歸分析的預測值為499萬元,則認為這是一個比較好的回歸分析。在機器學習問題中,常見的回歸分析有線性回歸、多項式回歸、邏輯回歸等。本例子介紹線性回歸算法,并通過MindSpore進行線性回歸AI訓練體驗。
整體流程如下:
1、生成數據集
2、定義訓練網絡
3、定義前向傳播網絡與反向傳播網絡并關聯
4、擬合過程可視化準備
5、執行訓練
三、加載模型用于推理或遷移學習
1、用于推理驗證
針對僅推理場景可以使用load_checkpoint把參數直接加載到網絡中,以便進行后續的推理驗證。
示例代碼如下:
resnet = ResNet50()
load_checkpoint("resnet50-2_32.ckpt", net=resnet)
dateset_eval = create_dataset(os.path.join(mnist_path, "test"), 32, 1) # define the test dataset
loss = CrossEntropyLoss()
model = Model(resnet, loss, metrics={"accuracy"})
acc = model.eval(dataset_eval)
load_checkpoint方法會把參數文件中的網絡參數加載到模型中。加載后,網絡中的參數就是CheckPoint保存的。
eval方法會驗證訓練后模型的精度。
2、用于遷移學習
針對任務中斷再訓練及微調(Fine Tune)場景,可以加載網絡參數和優化器參數到模型中。
示例代碼如下:
# return a parameter dict for model
param_dict = load_checkpoint("resnet50-2_32.ckpt")
resnet = ResNet50()
opt = Momentum()
# load the parameter into net
load_param_into_net(resnet, param_dict)
# load the parameter into operator
load_param_into_net(opt, param_dict)
loss = SoftmaxCrossEntropyWithLogits()
model = Model(resnet, loss, opt)
model.train(epoch, dataset)
load_checkpoint方法會返回一個參數字典。
load_param_into_net會把參數字典中相應的參數加載到網絡或優化器中。
精品推薦
-
IntelliJ IDEA 2019
詳情 -
Microsoft VC++6.0安裝包
詳情 -
Microsoft VC++2015版運行庫
詳情 -
VC++2019運行庫
詳情 -
RobotStudio
詳情 -
Intel Visual Fortran
詳情 -
Microsoft Visual Studio 2022
詳情 -
Microsoft VC++2010運行庫安裝包
詳情 -
Ghidra反匯編
詳情 -
WeDo 2.0
詳情 -
西門子step7編程軟件
詳情 -
Dependency Walker
詳情 -
Vijeo designer basic
詳情 -
Arduino IDE
詳情 -
Thonny編輯器
詳情 -
豐煒Ladder Master
詳情
-
7 ENFI下載器
裝機必備軟件
網友評論