国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于GA的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)化剪枝算法

2022-03-16 01:29:00賀天宇田宗浩
兵器裝備工程學(xué)報(bào) 2022年2期
關(guān)鍵詞:剪枝適應(yīng)度染色體

賀天宇,田宗浩,張 航

(陸軍炮兵防空兵學(xué)院,合肥 230031)

1 引言

彈載圖像目標(biāo)檢測系統(tǒng)利用采集的彈載圖像進(jìn)行目標(biāo)自主識(shí)別和定位,為跟蹤制導(dǎo)提供精確的定位信息。隨著深度學(xué)習(xí)(deep learning,DL)在目標(biāo)檢測領(lǐng)域的推廣應(yīng)用,卷積神經(jīng)網(wǎng)絡(luò) (convolution neural network,CNN)通過訓(xùn)練學(xué)習(xí)得到圖像中的目標(biāo)特征信息,檢測精度遠(yuǎn)超過人工挖掘圖像特征目標(biāo)檢測算法。而基于深度學(xué)習(xí)的目標(biāo)檢測算法依賴于卷積神經(jīng)網(wǎng)絡(luò),在目標(biāo)特征提取和推理過程中需要進(jìn)行大量的計(jì)算,隨著網(wǎng)絡(luò)架構(gòu)的深度不斷增加,模型的檢測精度不斷提高,隨之帶來的是龐大的數(shù)據(jù)量問題,尤其是訓(xùn)練得到的參數(shù)信息會(huì)隨著網(wǎng)絡(luò)的深度成指數(shù)增加,這為在邊緣部署深度學(xué)習(xí)算法帶來了嚴(yán)峻挑戰(zhàn)。

對(duì)于嵌入式設(shè)備而言,存儲(chǔ)空間、計(jì)算資源、能耗以及體積限制了理論模型向工程實(shí)現(xiàn)的轉(zhuǎn)換,輕量化深度學(xué)習(xí)模型設(shè)計(jì)成為解決此問題的重要途徑。早在1989年深度學(xué)習(xí)模型還沒有被廣泛應(yīng)用之前,Lecun教授就在文獻(xiàn)[4]中提出剔除神經(jīng)網(wǎng)絡(luò)中不重要參數(shù)信息思想,達(dá)到壓縮模型尺寸的作用,當(dāng)前很多深度學(xué)習(xí)模型剪枝算法都是基于文獻(xiàn)[4]中提出的OBD方法的改進(jìn)。深度學(xué)習(xí)模型壓縮技術(shù)在于減少參數(shù)冗余而不會(huì)損失較大的預(yù)測精度,關(guān)鍵技術(shù)難點(diǎn)為壓縮量化指標(biāo)的確定,其研究主要集中在精細(xì)化的模型設(shè)計(jì)、量化、Low-rank分解、模型/通道剪枝以及遷移學(xué)習(xí)等方面,相關(guān)研究均在特定模型中取得較好的壓縮效果,如圖1所示。

圖1 深度學(xué)習(xí)壓縮模型研究分類框圖

圖1中,深度學(xué)習(xí)模型精細(xì)化設(shè)計(jì)將卷積核分解成多個(gè)小卷積核組合,優(yōu)化模型結(jié)構(gòu)的同時(shí)大大減少網(wǎng)絡(luò)參數(shù);量化是通過降低權(quán)重參數(shù)的比特位數(shù)進(jìn)行模型壓縮,例如將32bit浮點(diǎn)權(quán)重轉(zhuǎn)換為8bit整型以及權(quán)重二值化、三值化等,在保證模型精度損失較小的情況下,極大地提高計(jì)算效率,降低內(nèi)存占用率;模型訓(xùn)練出的權(quán)重矩陣中很多信息是冗余的,Low-Rank分解是用若干小矩陣表達(dá)出大矩陣包含的信息,模型精度幾乎不變,而模型的計(jì)算復(fù)雜度和內(nèi)存開銷大大降低;模型剪枝分為結(jié)構(gòu)化、非結(jié)構(gòu)化以及中間隱層剪枝,其核心思想是通過判定指標(biāo)確定模型節(jié)點(diǎn)、通道以及參數(shù)的重要程度,剔除對(duì)模型精度影響不大的部分,并通過再訓(xùn)練對(duì)模型進(jìn)行微調(diào)。根據(jù)剪枝再訓(xùn)練過程又可分為永久剪枝和動(dòng)態(tài)剪枝,其中永久剪枝完全依賴于訓(xùn)練模型的權(quán)重信息,裁剪完成后不再參與再訓(xùn)練過程,但是對(duì)于網(wǎng)絡(luò)模型來說,某些權(quán)重信息是對(duì)后面權(quán)重參數(shù)的重要補(bǔ)充,永久裁剪后極大降低模型的精度,動(dòng)態(tài)裁剪就是將這些誤裁剪的節(jié)點(diǎn)重新恢復(fù)回來,降低重要參數(shù)被裁剪的風(fēng)險(xiǎn);遷移學(xué)習(xí)來源于Teacher-Student方法,在結(jié)構(gòu)復(fù)雜、泛化性好、精度高的Teacher模型基礎(chǔ)上“引導(dǎo)”結(jié)構(gòu)簡單、參數(shù)量少的Student模型訓(xùn)練,得到和Teacher模型精度相近的結(jié)果。

因此,結(jié)合彈載平臺(tái)特殊的應(yīng)用環(huán)境,在滿足目標(biāo)檢測精度的前提下,設(shè)計(jì)高效的目標(biāo)檢測算法,并且在不損失或損失較少目標(biāo)檢測精度的情況下對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行輕量化設(shè)計(jì),降低模型訓(xùn)練過程參數(shù)冗余和推理過程計(jì)算量,這對(duì)提高彈載圖像目標(biāo)檢測精度和算法在彈載嵌入式平臺(tái)中部署有重要研究價(jià)值。

2 基于遺傳算法的模型壓縮方法

2.1 彈載平臺(tái)模型壓縮算法分析

圖1對(duì)當(dāng)前的深度學(xué)習(xí)模型壓縮技術(shù)進(jìn)行了概括分析,其中權(quán)重排序剪枝是眾多研究學(xué)者廣泛研究的模型壓縮算法,并取得一定的壓縮效果。但是權(quán)重排序剪枝算法類似于在參數(shù)空間中的一種暴力搜索,不同神經(jīng)元的組合種類數(shù)以萬計(jì),僅以權(quán)重值排序進(jìn)行篩選只能在參數(shù)空間找到極少的一種組合方式,很多潛在的、壓縮率更高的組合并沒有搜索到。例如,以卷積層為例,所有卷積核是否去除用0或1表示,這些數(shù)字組成一個(gè)向量空間,該空間的維度與卷積層的卷積核數(shù)目一致,每一個(gè)數(shù)字在0和1之間變化時(shí),都對(duì)應(yīng)著該向量空間中的不同位置?;跈?quán)重的壓縮方法,只能兼顧到該高維空間中的極少幾個(gè)位置,對(duì)于廣闊的向量空間來說,該方法容易陷入局部最優(yōu)。另外,權(quán)重排序剪枝算法基于“權(quán)重值偏小的神經(jīng)元,對(duì)分類的意義很小”這一假設(shè)條件,在很多情況下權(quán)重偏小的神經(jīng)元隨著訓(xùn)練的迭代也會(huì)為分類提供較大的參考價(jià)值,對(duì)于此類神經(jīng)元需要更深入的分析和觀察,而不是粗暴的過濾。

此外,網(wǎng)絡(luò)參數(shù)修剪也可以分為結(jié)構(gòu)化和非結(jié)構(gòu)剪枝,結(jié)構(gòu)化剪枝為直接對(duì)卷積核的刪減,對(duì)網(wǎng)絡(luò)結(jié)構(gòu)影響不大。而非結(jié)構(gòu)剪枝為對(duì)卷積核內(nèi)某一位置元素操作,會(huì)使網(wǎng)絡(luò)權(quán)重參數(shù)稀疏化。2種裁剪方式均可對(duì)模型達(dá)到很好的壓縮效果。但是非結(jié)構(gòu)化裁剪會(huì)使模型在彈載嵌入式硬件平臺(tái)移植過程中造成無法高效使用密集乘法矩陣加速計(jì)算,硬件的計(jì)算成本和難度會(huì)大幅度提升。

因此,為提高在向量空間搜索時(shí)的覆蓋度以及對(duì)不同權(quán)重貢獻(xiàn)率的分析,降低后期算法向硬件平臺(tái)移植難度,找到更優(yōu)的壓縮結(jié)果,本文采用遺傳算法(genetic algorithm,GA)對(duì)卷積核進(jìn)行結(jié)構(gòu)化剪枝,在全局搜索空間內(nèi)對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行壓縮,防止陷入局部最優(yōu),提高網(wǎng)絡(luò)壓縮后的整體效果。

2.2 遺傳算法

遺傳算法是模擬生物進(jìn)化過程開發(fā)的搜索最優(yōu)解計(jì)算模型,將求解最優(yōu)解問題轉(zhuǎn)換成基因的交叉、變異和選擇算子過程,具有良好的全局尋優(yōu)能力。GA以種群中的所有個(gè)體為對(duì)象,通過遺傳操作不斷地更新每個(gè)個(gè)體的基因序列,直到收斂到全局最優(yōu)染色體序列,其流程如圖2所示。

圖2 遺傳算法流程框圖

圖2為遺傳算法的基本流程,其中編碼方式、種群初始化、適應(yīng)度函數(shù)以及遺傳操作中的選擇、交叉和變異是GA的關(guān)鍵步驟,文獻(xiàn)[20]中對(duì)GA實(shí)現(xiàn)流程進(jìn)行了詳細(xì)介紹,本文不做贅述。

2.3 關(guān)鍵技術(shù)分析

卷積神經(jīng)網(wǎng)絡(luò)一般由卷積層和全連接層組成,卷積層主要用來提取圖像中的特征信息,占據(jù)了整個(gè)網(wǎng)絡(luò)架構(gòu)90%~95%的計(jì)算量和5%的參數(shù)量,而全連接層主要用來語義表達(dá),判斷檢測目標(biāo)的屬性,其占據(jù)了網(wǎng)絡(luò)5%~10%的計(jì)算量和95%的參數(shù)。為此,卷積層和全連接層的參數(shù)優(yōu)化是模型壓縮的關(guān)鍵環(huán)節(jié),結(jié)合圖2遺傳算法流程,對(duì)網(wǎng)絡(luò)中的卷積層和全連接層實(shí)現(xiàn)結(jié)構(gòu)化剪枝,建立基于GA的模型壓縮算法。

1) 編碼

二進(jìn)制編碼通過0和1來組成染色的基因序列,是GA染色體常用的編碼方式。為此,該算法用0和1作為卷積核的掩膜,以此標(biāo)記卷積層中卷積核的保留和剔除,為壓縮過程中的卷積核表示提供了極大地便利,其編碼方式如圖3所示。

圖3 卷積核二進(jìn)制編碼示意圖

圖3中,當(dāng)卷積層總共包含256個(gè)卷積核時(shí),則染色體的基因長度為256,全部都以0和1組成,每個(gè)數(shù)字與卷積核一一對(duì)應(yīng),作為該卷積核的掩膜,比如最左側(cè)數(shù)字對(duì)應(yīng)最左側(cè)卷積核。

在完成GA迭代之后,得到了最優(yōu)秀的染色體,根據(jù)最優(yōu)染色體的DNA序列值來得到當(dāng)前卷積層壓縮結(jié)果。例如,如果DNA某位置數(shù)字值是0,則將其對(duì)應(yīng)位置的卷積核從網(wǎng)絡(luò)中刪除。如果是1,則保留該卷積核不動(dòng),將DNA解碼,便可得到模型結(jié)構(gòu)化壓縮結(jié)果。

2) 適應(yīng)度計(jì)算

適應(yīng)度函數(shù)用來表征染色體基因序列遺傳給后代的概率,適應(yīng)度高的染色體遺傳率高,相反則遺傳率低,故也稱目標(biāo)函數(shù)。在目標(biāo)檢測網(wǎng)絡(luò)中,每個(gè)染色對(duì)適應(yīng)度的貢獻(xiàn)率用檢測精度表示,由分類結(jié)果和位置檢測精度兩部分組成。當(dāng)分類結(jié)果錯(cuò)誤時(shí),貢獻(xiàn)率為0;當(dāng)分類結(jié)果正確時(shí),貢獻(xiàn)率為1。位置檢測精度貢獻(xiàn)率由真實(shí)框和檢測框的交疊程度表示,如圖4所示(IoU的計(jì)算方式)。

則,位置檢測精度貢獻(xiàn)率如式(1)所示:

(1)

式中:為真實(shí)標(biāo)注框;為檢測框;為交疊面積。利用位置和分類貢獻(xiàn)率,計(jì)算模型的mAP和網(wǎng)絡(luò)參數(shù)規(guī)模,并且確定單個(gè)染色體的適應(yīng)度為:

(2)

其中:分別為第條染色體均值平均精度和網(wǎng)絡(luò)參數(shù)規(guī)模;為第條染色體的適應(yīng)度。最終的適應(yīng)度要同時(shí)兼顧兩個(gè)方面的性能,即“高檢測率,低網(wǎng)絡(luò)大小”。其網(wǎng)絡(luò)參數(shù)規(guī)模可以用式(3)表示:

(3)

其中:為第卷積層的參數(shù)量;為第層卷積核大小;+1分別為對(duì)應(yīng)層通道數(shù)。由此可得壓縮比為:

(4)

其中,為未壓縮參數(shù)量。

圖4 位置檢測精度貢獻(xiàn)率示意圖

另外,GA每一次迭代都需要計(jì)算每個(gè)染色體對(duì)應(yīng)的適應(yīng)度值,如果把所有樣本都用來計(jì)算適應(yīng)度,則整個(gè)訓(xùn)練過程的計(jì)算代價(jià)將非常大,嚴(yán)重影響遺傳算法的速度。為此,該算法將樣本集分成3個(gè)規(guī)模:小樣本集、中樣本集、大樣本集,在迭代過程中靈活使用不同規(guī)模的樣本集來彌補(bǔ)計(jì)算量太大的問題。

例如,如果檢測任務(wù)總共包括10類目標(biāo),每一類目標(biāo)有10 000個(gè)樣本,總計(jì)100 000個(gè)樣本。其中,小樣本集包含10類目標(biāo),每一類隨機(jī)從總樣本中挑選出100個(gè)樣本;中樣本集包含10類目標(biāo),每一類也是隨機(jī)挑選1 000個(gè)樣本;大樣本集是總體樣本。雖然小樣本集得到的適應(yīng)度相比于中樣本集、大樣本集有所偏差,但遺傳算法本身是一種“粗獷”的搜索方法,其更加注重在向量空間中進(jìn)行大范圍的覆蓋,以防止過早進(jìn)入局部最優(yōu)。因此,小樣本集帶來的適應(yīng)度偏差在接受范圍內(nèi),并且可以通過反復(fù)迭代和更新樣本集來提高其壓縮精度。

3) 遺傳操作

遺傳操作包含算子選擇、交叉和變異,各步驟方法和傳統(tǒng)方法類似。

2.4 模型建立

通過上述分析,基于遺傳算法的模型壓縮算法流程可以在圖2的基礎(chǔ)上更新為圖5。

圖5 基于GA的模型壓縮流程框圖

由圖5可以分析基于GA的網(wǎng)絡(luò)壓縮過程為:

Step 1:選定壓縮網(wǎng)絡(luò)層

當(dāng)前,基于深度學(xué)習(xí)的目標(biāo)檢測網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,該算法從輸入層網(wǎng)絡(luò)開始,逐層進(jìn)行壓縮。即,先用GA完成第一個(gè)卷積層中冗余卷積核的去除,此后再考慮第二個(gè)卷積層,在對(duì)第一個(gè)卷積層處理的過程中,后續(xù)所有的卷積層都保持不動(dòng)。

Step 2:編碼及初始化

每個(gè)染色體對(duì)應(yīng)的DNA基因序列由個(gè)數(shù)字組成(數(shù)字為0或1),與當(dāng)前卷積層的卷積核數(shù)量一致。DNA的每一個(gè)位置的數(shù)字值,根據(jù)隨機(jī)分配為0或1,其中0表示該卷積核會(huì)被刪除。設(shè)置染色體初始值Num和基因隨機(jī)編碼比例,即DNA中的0的數(shù)量比例。

Step 3:計(jì)算每個(gè)染色體的適應(yīng)度值

利用式(2)計(jì)算每個(gè)染色體的適應(yīng)度值,記錄適應(yīng)度最好的染色體,將其作為歷史最優(yōu)染色體。

Step 4:遺傳操作

Step 5:生成新種群,計(jì)算下一代染色體適應(yīng)度

記錄當(dāng)前適應(yīng)度最好的個(gè)體,將其與歷史最優(yōu)染色體進(jìn)行比較,以此實(shí)現(xiàn)歷史最優(yōu)染色體更新。

Step 6:循環(huán)上述步驟Step 3~Step 5一定的次數(shù),直到當(dāng)前樣本集上的適應(yīng)度提升沒有明顯變化為止(條件判斷1)

Step 7:更換樣本集

更換樣本集,重復(fù)步驟Step 3~Step 6,當(dāng)大樣本集遍歷完成后輸出最優(yōu)解(條件判斷2),即在大樣9本集上的適應(yīng)度提升沒有明顯變化。為了降低樣本集變大帶來的速度影響,保留上一層級(jí)樣本集尋優(yōu)結(jié)果中比例的最優(yōu)染色體作為初始染色體。

Step 8:輸出最優(yōu)解,解碼獲得最優(yōu)壓縮結(jié)果

上述迭代完成后,解碼歷史最優(yōu)染色體DNA序列,根據(jù)序列中的0、1掩膜決定其對(duì)應(yīng)位置的卷積核是否從網(wǎng)絡(luò)中刪除,完成當(dāng)前層網(wǎng)絡(luò)壓縮,重復(fù)Step 2~Step 7繼續(xù)下一層網(wǎng)絡(luò)壓縮。

3 試驗(yàn)

為驗(yàn)證本文壓縮算法的有效性,分別以LeNet-5和AlexNet卷積網(wǎng)絡(luò)為基準(zhǔn)進(jìn)行逐層壓縮,數(shù)據(jù)集分別為MNIST和CIFAR-10,對(duì)比分析各層壓縮后的參數(shù)變化。

LeNet-5卷積網(wǎng)絡(luò)是在LeNet基礎(chǔ)上改進(jìn)的,網(wǎng)絡(luò)結(jié)構(gòu)相對(duì)簡單,由標(biāo)準(zhǔn)卷積層和全連接層組成,其網(wǎng)絡(luò)結(jié)構(gòu)圖如圖6。

其中,LeNet-5分別由3個(gè)卷積層、2個(gè)池化層和1個(gè)全連接層組成,其各層參數(shù)如圖6所示。

從表1中發(fā)現(xiàn),因LeNet-5模型各層卷積核數(shù)量較少,LeNet-5模型的整體壓縮比為0.783 4。其中第1個(gè)卷積層C1無法進(jìn)行壓縮,刪減任何一個(gè)卷積核,都會(huì)引起整個(gè)網(wǎng)絡(luò)性能的下降,主要?dú)w因于第一個(gè)卷積層提取的特征是后續(xù)特征學(xué)習(xí)的基礎(chǔ)。卷積層C5和全連接層F6的單層壓縮率較高,驗(yàn)證了卷積層和全連接層是模型結(jié)構(gòu)化壓縮的重點(diǎn)。此外,原LeNet-5模型的檢測精度為99.2%,經(jīng)過壓縮后模型的檢測精度為99.07%,模型壓縮后的檢測精度損失0.13%。

同理,對(duì)AlexNet卷積網(wǎng)絡(luò)在數(shù)據(jù)集CIFAR-10的訓(xùn)練結(jié)果進(jìn)行壓縮,其結(jié)果如表2所示。

圖6 LeNet5網(wǎng)絡(luò)結(jié)構(gòu)圖

表1 LeNet-5壓縮前后參數(shù)量對(duì)比(MNIST數(shù)據(jù)集)

表2 AlexNet壓縮前后參數(shù)量對(duì)比(CIFAR-10數(shù)據(jù)集)

通過表2分析發(fā)現(xiàn),本文算法能夠?qū)崿F(xiàn)對(duì)AlexNet網(wǎng)絡(luò)參數(shù)95.92%的壓縮,大大降低模型的參數(shù)量。從各層壓縮比分析出,初始層卷積核壓縮比相對(duì)較低,隨著網(wǎng)絡(luò)深度的不斷遞增,模型冗余參數(shù)不斷增多,壓縮比不斷增高,體現(xiàn)了初始卷積層對(duì)特征學(xué)習(xí)的重要性。另外,未壓縮模型的檢測精度為81.32%,壓縮后模型的檢測精度為80.76%,模型精度損失0.56%。

另外,為進(jìn)一步驗(yàn)證本文模型的有效性,對(duì)比分析采用文獻(xiàn)[21]權(quán)重裁剪算法、L1范數(shù)結(jié)構(gòu)化剪枝算法以及本文算法的壓縮性能參數(shù),基準(zhǔn)網(wǎng)絡(luò)選用上述AlexNet網(wǎng)絡(luò),其結(jié)果如表3所示。

表3 不同算法模型剪枝性能分析結(jié)果

從其中可以看出,因文獻(xiàn)[21]提出的權(quán)重裁剪算法為細(xì)粒度剪枝,可以保留卷積核內(nèi)的有用信息,而L1范數(shù)算法和本文算法為粗粒度剪枝,裁剪完后的卷積核內(nèi)仍存在一定的權(quán)重冗余,但因本文模型是在全局范圍內(nèi)對(duì)卷積核的重要性進(jìn)行評(píng)估,大大提高了裁剪的準(zhǔn)確率,達(dá)到較好的壓縮效果,并將精度損失控制在1%以內(nèi)。另外,文獻(xiàn)[21]提出的算法會(huì)造成權(quán)重稀疏連接,對(duì)硬件平臺(tái)友好性差,而本文算法對(duì)于彈載異構(gòu)硬件平臺(tái)的適應(yīng)性較好,可以高效利用硬件乘加器實(shí)現(xiàn)矩陣的快速計(jì)算,降低算法向異構(gòu)硬件平臺(tái)移植的難度。

4 結(jié)論

為降低深度學(xué)習(xí)算法向彈載嵌入式硬件平臺(tái)部署的難度,提出了基于GA的結(jié)構(gòu)化模型壓縮算法,主要?jiǎng)?chuàng)新點(diǎn)為:

1) 利用遺傳算法在全局空間的搜索特性對(duì)模型各層卷積核進(jìn)行結(jié)構(gòu)化剪枝,解決傳統(tǒng)權(quán)重剪枝易陷入局部最優(yōu)和剪枝結(jié)果對(duì)硬件平臺(tái)不友好問題;

2) 提出“高檢測率,低網(wǎng)絡(luò)大小”的模型壓縮判別指標(biāo),獲得精度損失低、模型壓縮率高的輕量化模型結(jié)構(gòu);

3) 優(yōu)化樣本集規(guī)模,解決整個(gè)訓(xùn)練過程計(jì)算代價(jià)大等問題,提高基于GA的模型壓縮算法執(zhí)行速度。

猜你喜歡
剪枝適應(yīng)度染色體
改進(jìn)的自適應(yīng)復(fù)制、交叉和突變遺傳算法
人到晚年宜“剪枝”
基于YOLOv4-Tiny模型剪枝算法
多一條X染色體,壽命會(huì)更長
為什么男性要有一條X染色體?
剪枝
天津詩人(2017年2期)2017-03-16 03:09:39
能忍的人壽命長
基于空調(diào)導(dǎo)風(fēng)板成型工藝的Kriging模型適應(yīng)度研究
中國塑料(2016年11期)2016-04-16 05:26:02
再論高等植物染色體雜交
一種面向不平衡數(shù)據(jù)分類的組合剪枝方法
克东县| 内乡县| 灌阳县| 楚雄市| 布尔津县| 额尔古纳市| 定南县| 宁晋县| 中方县| 广河县| 鄂托克旗| 东方市| 雅安市| 东乌珠穆沁旗| 临洮县| 格尔木市| 东光县| 虎林市| 大石桥市| 呼和浩特市| 周宁县| 罗田县| 望奎县| 沈丘县| 十堰市| 运城市| 景谷| 云霄县| 宁武县| 林周县| 固安县| 平湖市| 天柱县| 慈溪市| 太白县| 益阳市| 海林市| 恩施市| 恩平市| 蓝山县| 上蔡县|