人工智能通識 實踐任務(wù)報告 Chap 13人工智能在航天領(lǐng)域的應(yīng)用_第1頁
人工智能通識 實踐任務(wù)報告 Chap 13人工智能在航天領(lǐng)域的應(yīng)用_第2頁
人工智能通識 實踐任務(wù)報告 Chap 13人工智能在航天領(lǐng)域的應(yīng)用_第3頁
人工智能通識 實踐任務(wù)報告 Chap 13人工智能在航天領(lǐng)域的應(yīng)用_第4頁
人工智能通識 實踐任務(wù)報告 Chap 13人工智能在航天領(lǐng)域的應(yīng)用_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

《人工智能通識》實驗任務(wù)報告實驗章節(jié):學(xué)生姓名: 專業(yè)班級: 學(xué)號: 機械工業(yè)出版社《第十三章人工智能在航天領(lǐng)域的應(yīng)用》課程實驗姓名學(xué)號班級實驗地點指導(dǎo)教師時間實驗任務(wù)1、任務(wù)名稱利用LuoJiaNe機器學(xué)習(xí)框架實現(xiàn)遙感影像場景分類。2、任務(wù)目標(1)掌握LuoJiaNET深度學(xué)習(xí)的基本流程。(2)學(xué)會如何利用LuoJiaNet深度學(xué)習(xí)框架創(chuàng)建VGG網(wǎng)絡(luò)模型。(3)通過遙感影像場景分類的整個過程,認識到人工智能為航天領(lǐng)域帶來的便利。3、具體任務(wù)內(nèi)容(1)下載AID數(shù)據(jù)集并對數(shù)據(jù)進行一些相關(guān)處理;(2)按照VGG的網(wǎng)絡(luò)結(jié)構(gòu),創(chuàng)建VGG網(wǎng)絡(luò)模型;(3)定義損失函數(shù)和優(yōu)化器;(4)訓(xùn)練及保存模型;(5)加載模型,并使用生成的模型進行單個圖片數(shù)據(jù)的分類預(yù)測。4、成果要求(1)實驗報告一份,按照實驗報告模板撰寫,詳細描述實驗過程、遇到的問題及解決方案、實驗結(jié)果等。(2)完整的程序代碼一份。(3)最終的分類預(yù)測結(jié)果一份,保存為CSV文件。實驗報告1、實驗任務(wù)利用LuoJiaNe機器學(xué)習(xí)框架實現(xiàn)遙感影像場景分類。2、實驗環(huán)境軟件環(huán)境:操作系統(tǒng):Windows10Python版本:3.7.5-3.7.6主要依賴庫:LuoJiaNET(安裝步驟可參考:37/luojiaNet/install/docs)3、任務(wù)完成及步驟【分解任務(wù)1】:數(shù)據(jù)準備。實驗步驟:下載AID數(shù)據(jù)集(37/luojiaNet/tutorial/quickstart),解壓后按下方目錄結(jié)構(gòu)放置:實驗結(jié)果:(1)xxxxxx實驗總結(jié):(1)遇到xx問題,解決方法;總結(jié)xx經(jīng)驗【分解任務(wù)2】:數(shù)據(jù)處理。實驗步驟:(1)導(dǎo)入LuoJiaNET中l(wèi)uojianet_ms.dataset和其他相應(yīng)的模塊。importosfromPILimportImage,ImageFilefromluojianet_monimportdtypeasmstypeimportluojianet_ms.datasetasdeimportluojianet_ms.dataset.transforms.c_transformsasC2importluojianet_ms.dataset.vision.c_transformsasvisionimportluojianet_ms.dataset.vision.c_transformsasC定義函數(shù)create_dataset來創(chuàng)建數(shù)據(jù)集;調(diào)用ImageFolderDataset接口;對數(shù)據(jù)進行增強操作,為之后進行map映射做準備;使用map映射函數(shù),將數(shù)據(jù)操作應(yīng)用到數(shù)據(jù)集;進行數(shù)據(jù)shuffle、batch操作。defcreate_dataset(dataset_path,do_train,batch_size=16):ds=de.ImageFolderDataset(dataset_path,num_parallel_workers=8,shuffle=True)ifdo_train:trans=[C.RandomCropDecodeResize(224),C.RandomHorizontalFlip(prob=0.5),C.RandomColorAdjust(brightness=0.4,contrast=0.4,saturation=0.4)]else:trans=[C.Decode(),C.Resize(255),C.CenterCrop(224)]trans+=[C.Normalize(mean=[127.5,127.5,127.5],std=[127.5,127.5,127.5]),C.HWC2CHW(),C2.TypeCast(mstype.float32)]type_cast_op=C2.TypeCast(32)ds=ds.map(input_columns="image",operations=trans,num_parallel_workers=8)ds=ds.map(input_columns="label",operations=type_cast_op,num_parallel_workers=8)ds=ds.batch(batch_size,drop_remainder=True)returnds實驗結(jié)果:(1)xxxxxx實驗總結(jié):(1)遇到xx問題,解決方法;總結(jié)xx經(jīng)驗?!痉纸馊蝿?wù)3】:創(chuàng)建VGG網(wǎng)絡(luò)模型。實驗步驟:使用LuoJiaNet定義神經(jīng)網(wǎng)絡(luò)需要繼承l(wèi)uojianet_ms.nn.Module,所有算子都繼承自Module類;神經(jīng)網(wǎng)絡(luò)的各層需要預(yù)先在__init__方法中定義,然后通過定義forward方法來完成神經(jīng)網(wǎng)絡(luò)的構(gòu)造。importluojianet_msasmsfromluojianet_msimportops,nnfromluojianet_mon.initializerimportNormalfromluojianet_ms.opsimportoperationsasPcfg={'A':[64,'M',128,'M',256,256,'M',512,512,'M',512,512,'M'],'B':[64,64,'M',128,128,'M',256,256,'M',512,512,'M',512,512,'M'],'D':[64,64,'M',128,128,'M',256,256,256,'M',512,512,512,'M',512,512,512,'M'],'E':[64,64,'M',128,128,'M',256,256,256,256,'M',512,512,512,512,'M',512,512,512,512,'M']}classVGG(nn.Module):def__init__(self,features,num_classes=100):super().__init__()self.features=featuresself.classifier=nn.SequentialCell(nn.Dense(512*7*7,4096),nn.ReLU(),nn.Dropout(),nn.Dense(4096,4096),nn.ReLU(),nn.Dropout(),nn.Dense(4096,num_classes))defforward(self,x):output=self.features(x)output=ops.Reshape()(output,(output.shape[0],-1))output=self.classifier(output)returnoutputdefmake_layers(cfg,batch_norm=False):layers=[]input_channel=3forlincfg:ifl=='M':layers+=[nn.MaxPool2d(kernel_size=2,stride=2)]continuelayers+=[nn.Conv2d(input_channel,l,kernel_size=3,padding=1,pad_mode='pad')]ifbatch_norm:layers+=[nn.BatchNorm2d(l)]layers+=[nn.ReLU()]input_channel=lreturnnn.SequentialCell(layers)defvgg11_bn(num_classes):returnVGG(make_layers(cfg['A'],batch_norm=True),num_classes)defvgg13_bn(num_classes):returnVGG(make_layers(cfg['B'],batch_norm=True),num_classes)defvgg16_bn(num_classes):returnVGG(make_layers(cfg['D'],batch_norm=True),num_classes)defvgg19_bn(num_classes):returnVGG(make_layers(cfg['E'],batch_norm=True),num_classes)實驗結(jié)果:(1)xxxxxx實驗總結(jié):(1)遇到xx問題,解決方法;總結(jié)xx經(jīng)驗。總結(jié)xx經(jīng)驗?!痉纸馊蝿?wù)4】:定義損失函數(shù)和優(yōu)化器。實驗步驟:使用交叉熵損失函數(shù)SoftmaxCrossEntropyWithLogits作為損失函數(shù);使用Momentum作為優(yōu)化器。importluojianet_ms.nnasnnnetwork=vgg16_bn(30)#定義損失函數(shù)net_loss=nn.SoftmaxCrossEntropyWithLogits(sparse=True,reduction='mean')#定義優(yōu)化器函數(shù)net_opt=nn.Momentum(network.trainable_params(),learning_rate=0.01,momentum=0.9)實驗結(jié)果:(1)xxxxxx實驗總結(jié):(1)遇到xx問題,解決方法;總結(jié)xx經(jīng)驗??偨Y(jié)xx經(jīng)驗?!痉纸馊蝿?wù)5】:訓(xùn)練及保存模型實驗步驟:(1)使用ModelCheckpoint接口用于保存網(wǎng)絡(luò)模型和參數(shù),以便進行后續(xù)的Fine-tuning(微調(diào))操作。fromluojianet_ms.train.callbackimportModelCheckpoint,CheckpointConfig#設(shè)置模型保存參數(shù),模型訓(xùn)練保存參數(shù)的step為100config_ck=CheckpointConfig(save_checkpoint_steps=100,keep_checkpoint_max=10)#應(yīng)用模型保存參數(shù)ckpoint=ModelCheckpoint(prefix="vggnet",directory="./vggnet",config=config_ck)通過LuoJiaNet提供的model.train接口可以方便地進行網(wǎng)絡(luò)的訓(xùn)練,LossMonitor可以監(jiān)控訓(xùn)練過程中l(wèi)oss值的變化。#導(dǎo)入模型訓(xùn)練需要的庫fromluojianet_ms.nnimportAccuracyfromluojianet_ms.train.callbackimportLossMonitorfromluojianet_msimportModel#加載訓(xùn)練數(shù)據(jù)集dataset_path=''dataset_train=create_dataset(dataset_path,do_train=True,batch_size=32)#初始化模型參數(shù)model=Model(network,loss_fn=net_loss,optimizer=net_opt,metrics={'accuracy'})#訓(xùn)練網(wǎng)絡(luò)模型,并保存為vggnet-1_1875.ckpt文件model.train(20,dataset_train,callbacks=[ckpoint,LossMonitor()])通過模型運行測試數(shù)據(jù)集得到的結(jié)果,驗證模型的泛化能力:使用model.eval接口讀入測試數(shù)據(jù)集。使用保存后的模型參數(shù)進行推理。acc=model.eval(dataset_eval)print("{}".format(acc))實驗結(jié)果:(1)xxxxxx實驗總結(jié):(1)遇到xx問題,解決方法;總結(jié)xx經(jīng)驗??偨Y(jié)xx經(jīng)驗?!痉纸馊蝿?wù)6】:加載模型。實驗步驟:fromluojianet_msimportload_checkpoint,load_param_into_net#加載已經(jīng)保存的用于測試的模型param_dict=load_checkpoint("./vggnet/vggnet-1_1250.ckpt")#加載參數(shù)到網(wǎng)絡(luò)中l(wèi)oad_param_into_net(network,param_dict)實驗結(jié)果:(1)xxxxxx實驗總結(jié):(1)遇到xx問題,解決方法;總結(jié)xx經(jīng)驗??偨Y(jié)xx經(jīng)驗。【分解任務(wù)7】:驗證模型。實驗步驟:使用生成的模型進行單個圖片數(shù)據(jù)的分類預(yù)測。importnumpy

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論