從說明里面能到到,它主要是服務(wù)于Online以及Enterprise,其實(shí)就是server、portal那一套??湛谡f無憑證,我們直接從接口文檔里面看功能。

上圖中跟我們有關(guān)的是arcgis.learn(深度學(xué)習(xí))模塊,其余的部分在本文中不會(huì)提到。如果想學(xué)習(xí)的話,可以參考官網(wǎng)的教程以及示例筆記本(notebook),里面很詳細(xì)的。

其中最重要的是需要看Sample Notebooks,里面講的很全很詳細(xì)(墻裂推薦)。這個(gè)部分,可以根據(jù)自己需求選擇性的去看某一部分。

那咱們主要是深度學(xué)習(xí),就看上圖中的第三部分就好了(友情提示,第三部分很多示例筆記本)。隨便點(diǎn)一個(gè)深度學(xué)習(xí)相關(guān)的,比如說之前公眾號(hào)中寫過的《利用深度學(xué)習(xí)檢測路面損壞情況》:

還有很多機(jī)器學(xué)習(xí)相關(guān)、空間分析相關(guān)的,大家可以自己深入看一下,但是要深入看的的話需要Python基礎(chǔ)以及ArcGIS相關(guān)基礎(chǔ)。

在哪個(gè)環(huán)節(jié)使用ArcGIS API for Python

在深度學(xué)習(xí)工作流中,老三步:樣本制作?->?模型訓(xùn)練?->?推理。其中使用ArcGIS API for Python的是模型訓(xùn)練環(huán)節(jié),其實(shí)推理階段倒不是不能使用API去做,只是你需要一個(gè)Image Server,當(dāng)然如果有多個(gè)的話,還是很推薦你使用集群去做推理的。

讓我們來看一下arcgis.learn模塊的東西:

可能會(huì)有人問,樣本轉(zhuǎn)換工具是干啥的?如果你之前沒有接觸過編程,(敲黑板)那得特意留意一下我下面講的內(nèi)容:

首先,我們使用ArcGIS Pro導(dǎo)出樣本之后,是這個(gè)樣子的:

然后,這個(gè)文件夾里面存儲(chǔ)著很多圖片,是沒辦法直接使用的,因?yàn)樗麄兪谴鎯?chǔ)在計(jì)算機(jī)磁盤空間中的。因此,要使用這些圖片、標(biāo)簽等等,就需要做轉(zhuǎn)化,將樣本文件從磁盤空間中加載到計(jì)算機(jī)內(nèi)存中。這個(gè)時(shí)候就需要用到樣本轉(zhuǎn)換工具,在Pro中工具(下圖中的訓(xùn)練深度學(xué)習(xí)模型工具)內(nèi)部其實(shí)也封裝了這個(gè)過程。

通過使用API會(huì)讓你看到更多工具內(nèi)部看不到的過程,可能第一次會(huì)有所疑惑,用多了就懂了。

關(guān)于模型那塊是干嘛的就不用我說啦吧,但是其實(shí)你發(fā)現(xiàn),ArcGIS API for Python的模型比ArcGIS?Pro中的要多很多。所以強(qiáng)烈推薦你們使用API做訓(xùn)練,因?yàn)橛懈嗄P?,而且不管是ArcGIS Pro訓(xùn)練深度學(xué)習(xí)模型工具中有沒有的模型,都可以使用Pro去做推理。唯一一個(gè)需要注意的是API與Pro的版本對(duì)應(yīng)關(guān)系,所以建議你們使用最新版本Pro。

另外,API是完全開源的,有興趣的話可以去github上查看更多源碼。

如何寫代碼

好了,看完上面之后下面可以愉快的coding了。真的很簡單,你們信我。而且簡單的同時(shí)你可以訓(xùn)練出世界頂級(jí)模型(這句話可不是我說的,是fastai作者說的)。因?yàn)閍rcgis.learn模塊內(nèi)部其實(shí)封裝的是fastai框架,這個(gè)框架的作者在kaggle上很出名的,感興趣的可以查一下。

不說那么多其他的,那就,來吧,展示:

首先打開notebook,沒有用過的可以參考我之前的文章:《為什么選擇在Jupyter Notebook中編寫代碼》,然后導(dǎo)包:

from arcgis.learn import prepare_data,UnetClassifier

其中prepare_data是樣本轉(zhuǎn)換工具,UnetClassifer是模型,在本場景中使用的是像素分類,小麥提取。你可以按照自己需求去導(dǎo)入模型,代碼上差異并不是很大。

另外不同場景的模型在之前的文章中有總結(jié)過:《ArcGIS API for Python:深度學(xué)習(xí)模塊概覽》,不熟悉的可以點(diǎn)擊查看。

然后使用prepare_data將樣本加載到內(nèi)存中:

# path是樣本文件夾路徑
path = r'E:\deeplearning\data\dongxiaomai\xiaomai_samplearea_tra30'
data = prepare_data(path,batch_size=16,val_split_pct=0.2)
data
prepare_data方法有幾個(gè)參數(shù)需要注意一下:

path:樣本文件夾,必填。

chip_size:樣本切片大小。

val_split_pct:驗(yàn)證集劃分比重。

bach_size:批大小。

除了一個(gè)path是必填的之外,其余的都可以根據(jù)實(shí)際情況選填。除了上面幾個(gè)參數(shù)之外,接口文檔中還有更詳細(xì)的說明:

一定要學(xué)會(huì)從接口文檔中查看參數(shù)信息

在加載完數(shù)據(jù)值后,還可以查看一下我們的樣本數(shù)據(jù)大概都是啥樣的:

data.show_batch()

上圖中紅色半透明部分是我標(biāo)注的樣本,在data.show_batch方法里,會(huì)將樣本疊在原始影像上,從而很方便的查看一個(gè)batch中的數(shù)據(jù)是啥樣的。你可以多運(yùn)行幾次這行代碼看看。

數(shù)據(jù)加載完成后,便可以實(shí)例化我們的模型:

model = UnetClassifier(data)

這一步就很簡單了,直接模型括號(hào)里面填上上一部中加載的樣本對(duì)象。然后使用model.lr_find()函數(shù)查找學(xué)習(xí)率:

lr = model.lr_find()
lr

這一步是固定寫法,就是查找最合適的學(xué)習(xí)率。學(xué)習(xí)率查找完成后,便可以訓(xùn)練模型了:

model.fit(200,lr)

訓(xùn)練模型中有幾個(gè)參數(shù)注意一下:

在接口文檔中,此部分要找到對(duì)應(yīng)的模型下面,查接口參數(shù):

訓(xùn)練完成之后,可以查看一下?lián)p失曲線:

model.plot_losses()

固定寫法,不需要改動(dòng)。

還可以使用model.show_results方法查看當(dāng)前模型在驗(yàn)證集上的表現(xiàn)情況:

model.show_results()

左邊為真實(shí)標(biāo)簽,右邊為當(dāng)前模型推理所得。這種方法可以很直觀的看到模型的表現(xiàn)如何。另外除了此種方法之外,還有其他精度指標(biāo)可查看:

model.mIOU()

因?yàn)槭菆D像分割,所以比較在意mIOU,其他的模型視情況選擇精度指標(biāo)查看。接口文檔中都可以查到,比如說本文中用到的mIOU指標(biāo),在接口文檔中查看:

如果說,你對(duì)模型滿意的話,便可以使用model.save方法保存模型了:

model.save(r'E:\deeplearning\model\dongxiaomai\unet_batchsize16_chipsize224_acc86')

固定寫法,替換掉文件夾路徑即可。到文件夾中查看如下:

然后便可以使用ArcGIS Pro進(jìn)行推理了。推理階段在此處就不講了。

總結(jié)

肯定有人看完上面,覺得還不是很清晰,不會(huì)咋辦。那你來打我,其實(shí)改動(dòng)的地方很少的,我們來看一下去掉每一行運(yùn)行結(jié)果后的完整代碼:

其中小部分都是固定寫法,大部分都是固定格式,小部分需要根據(jù)模型不同更改寫法。

這么短幾行代碼,你去寫一個(gè)月,還不會(huì),那你來打我。會(huì)不會(huì)python影響的已經(jīng)不大了,折騰吧。不得不吹一下,把深度學(xué)習(xí)封裝成如此簡潔易用,確實(shí)很厲害。

文章轉(zhuǎn)自微信公眾號(hào)@數(shù)讀城事

上一篇:

簡單實(shí)現(xiàn)AI音樂suno-api

下一篇:

Nas上搭建一個(gè)音樂源服務(wù)器+配套歌詞服務(wù)+移動(dòng)端播放軟件:Navidrome+lrcapi+音流
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場景實(shí)測,選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)