/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
/中文/
MindSpore是最佳匹配?N騰AI處理器算力的全場景深度學習框架,為數據科學家和算法工程師提供設計友好、運行高效的開發體驗,推動人工智能軟硬件應用生態繁榮發展,提供了友好的設計和高效的執行,旨在提升數據科學家和算法工程師的開發體驗,並為Ascend AI處理器提供原生支持,以及軟硬件協同優化。
通用場景教程
麵向不同程度開發者提供多種場景下的使用教程,通過細分步驟指導如何使用MindSpore
麵向新手的通用場景教程之快速入門
快速入門
通過一個實際樣例實現手寫數字的識別,帶領大家體驗MindSpore基礎的功能,一般來說,完成整個樣例實踐會持續20~30分鍾。
麵向專家的通用場景教程之圖像分類
圖像分類
結合CIFAR-10數據集,講解MindSpore如何處理圖像分類任務。
麵向專家的通用場景教程之情感分析
情感分析
構建一個自然語言處理的模型,通過文本分析和推理實現情感分析,完成對文本的情感分類。
生態合作
開發者體驗(?N騰環境)
在雲上ModelArts AI開發平台搶鮮體驗?N騰資源
開源合作
MindSpore社區期待各位開發者的加入
高校合作
MindSpore誠摯邀請您加入華為沃土高校教研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接口調試神經網絡性能。
簡單的開發體驗
幫助開發者實現網絡自動切分,隻需串行表達就能實現並行訓練,降低門檻,簡化開發流程。
使用該深度學習、ai、人工智能框架的優勢之靈活的調試模式
靈活的調試模式
具備訓練過程靜態執行和動態調試能力,開發者通過變更一行代碼即可切換模式,快速在線定位問題。
使用該深度學習、ai、人工智能框架的優勢之充分發揮硬件潛能
充分發揮硬件潛能
最佳匹配?N騰處理器,最大程度地發揮硬件能力,幫助開發者縮短訓練時間,提升推理性能。
使用該深度學習、ai、人工智能框架的優勢之全場景快速部署
全場景快速部署
支持雲、邊緣和手機上的快速部署,實現更好的資源利用和隱私保護,讓開發者專注於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會把參數字典中相應的參數加載到網絡或優化器中。