女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于KerasConv1D心電圖檢測開源教程

WpOh_rgznai100 ? 來源:YXQ ? 2019-06-10 15:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本實戰(zhàn)內(nèi)容取自筆者參加的首屆中國心電智能大賽項目,初賽要求為設(shè)計一個自動識別心電圖波形算法。筆者使用Keras框架設(shè)計了基于Conv1D結(jié)構(gòu)的模型,并且開源了代碼作為Baseline。內(nèi)容包括數(shù)據(jù)預(yù)處理,模型搭建,網(wǎng)絡(luò)訓(xùn)練,模型應(yīng)用等,此Baseline采用最簡單的一維卷積達到了88%測試準確率。有多支隊伍在筆者基線代碼基礎(chǔ)上調(diào)優(yōu)取得了優(yōu)異成績,順利進入復(fù)賽。

數(shù)據(jù)介紹

下載完整的訓(xùn)練集和測試集,共1000例常規(guī)心電圖,其中訓(xùn)練集中包含600例,測試集中共400例。該數(shù)據(jù)是從多個公開數(shù)據(jù)集中獲取。參賽團隊需要利用有正常/異常兩類標簽的訓(xùn)練集數(shù)據(jù)設(shè)計和實現(xiàn)算法,并在沒有標簽的測試集上做出預(yù)測。

該心電數(shù)據(jù)的采樣率為500 Hz。為了方便參賽團隊用不同編程語言都能讀取數(shù)據(jù),所有心電數(shù)據(jù)的存儲格式為MAT格式。該文件中存儲了12個導(dǎo)聯(lián)的電壓信號。訓(xùn)練數(shù)據(jù)對應(yīng)的標簽存儲在txt文件中,其中0代表正常,1代表異常。

賽題分析

簡單分析一下,初賽的數(shù)據(jù)集共有1000個樣本,其中訓(xùn)練集中包含600例,測試集中共400例。其中訓(xùn)練集中包含600例是具有l(wèi)abel的,可以用于我們訓(xùn)練模型;測試集中共400例沒有標簽,需要我們使用訓(xùn)練好的模型進行預(yù)測。

賽題就是一個二分類預(yù)測問題,解題思路應(yīng)該包括以下內(nèi)容

數(shù)據(jù)讀取與處理

網(wǎng)絡(luò)模型搭建

模型的訓(xùn)練

模型應(yīng)用與提交預(yù)測結(jié)果

實戰(zhàn)應(yīng)用

經(jīng)過對賽題的分析,我們把任務(wù)分成四個小任務(wù),首先第一步是:

1.數(shù)據(jù)讀取與處理

該心電數(shù)據(jù)的采樣率為500 Hz。為了方便參賽團隊用不同編程語言都能讀取數(shù)據(jù),所有心電數(shù)據(jù)的存儲格式為MAT格式。該文件中存儲了12個導(dǎo)聯(lián)的電壓信號。訓(xùn)練數(shù)據(jù)對應(yīng)的標簽存儲在txt文件中,其中0代表正常,1代表異常。

我們由上述描述可以得知,

我們的數(shù)據(jù)保存在MAT格式文件中(這決定了后面我們要如何讀取數(shù)據(jù))

采樣率為500 Hz(這個信息并沒有怎么用到,大家可以簡單了解一下,就是1秒采集500個點,由后面我們得知每個數(shù)據(jù)都是5000個點,也就是10秒的心電圖片)

12個導(dǎo)聯(lián)的電壓信號(這個是指采用12種導(dǎo)聯(lián)方式,大家可以簡單理解為用12個體溫計量體溫,從而得到更加準確的信息,下圖為導(dǎo)聯(lián)方式簡單介紹,大家了解下即可。要注意的是,既然提供了12種導(dǎo)聯(lián),我們應(yīng)該全部都用到,雖然我們僅使用一種導(dǎo)聯(lián)方式也可以進行訓(xùn)練與預(yù)測,但是經(jīng)驗告訴我們,采取多個特征會取得更優(yōu)效果)

數(shù)據(jù)處理函數(shù)定義:

import kerasfrom scipy.io import loadmatimport matplotlib.pyplot as pltimport globimport numpy as npimport pandas as pdimport mathimport osfrom keras.layers import *from keras.models import *from keras.objectives import *BASE_DIR = “preliminary/TRAIN/”#進行歸一化def normalize(v): return (v - v.mean(axis=1).reshape((v.shape[0],1))) / (v.max(axis=1).reshape((v.shape[0],1)) + 2e-12)loadmat打開文件def get_feature(wav_file,Lens = 12,BASE_DIR=BASE_DIR): mat = loadmat(BASE_DIR+wav_file) dat = mat[“data”] feature = dat[0:12] return(normalize(feature).transopse())#把標簽轉(zhuǎn)成oneHot形式def convert2oneHot(index,Lens): hot = np.zeros((Lens,)) hot[index] = 1 return(hot)TXT_DIR = “preliminary/reference.txt”MANIFEST_DIR = “preliminary/reference.csv”

讀取一條數(shù)據(jù)進行顯示

if name__ == “__main”: dat1 = get_feature(“preliminary/TRAIN/TRAIN101.mat”) print(dat1.shape) #one data shape is (12, 5000) plt.plt(dat1[:,0]) plt.show()

我們由上述信息可以看出每種導(dǎo)聯(lián)都是由5000個點組成的列表,12種導(dǎo)聯(lián)方式使每個樣本都是12*5000的矩陣,類似于一張分辨率為12x5000的照片。

我們需要處理的就是把每個讀取出來,歸一化一下,送入網(wǎng)絡(luò)進行訓(xùn)練可以了。

標簽處理方式

def create_csv(TXT_DIR=TXT_DIR): lists = pd.read_csv(TXT_DIR,sep=r“\t”,header=None) lists = lists.sample(frac=1) lists.to_csv(MANIFEST_DIR,index=None) print(“Finish save csv”)

我這里是采用從reference.txt讀取,然后打亂保存到reference.csv中,注意一定要進行數(shù)據(jù)打亂操作,不然訓(xùn)練效果很差。因為原始數(shù)據(jù)前面便簽全部是1,后面全部是0

數(shù)據(jù)迭代方式

Batch_size = 20def xs_gen(path=MANIFEST_DIR,batch_size = Batch_size,train=True):img_list = pd.read_csv(path)if train : img_list = np.array(img_list)[:500] print(“Found %s train items.”%len(img_list)) print(“l(fā)ist 1 is”,img_list[0]) steps = math.ceil(len(img_list) / batch_size) # 確定每輪有多少個batchelse: img_list = np.array(img_list)[500:] print(“Found %s test items.”%len(img_list)) print(“l(fā)ist 1 is”,img_list[0]) steps = math.ceil(len(img_list) / batch_size) # 確定每輪有多少個batchwhile True: for i in range(steps): batch_list = img_list[i * batch_size : i * batch_size + batch_size] np.random.shuffle(batch_list) batch_x = np.array([get_feature(file) for file in batch_list[:,0]]) batch_y = np.array([convert2oneHot(label,2) for label in batch_list[:,1]]) yield batch_x, batch_y

數(shù)據(jù)讀取的方式我采用的是生成器的方式,這樣可以按batch讀取,加快訓(xùn)練速度,大家也可以采用一下全部讀取,看個人的習(xí)慣了

2.網(wǎng)絡(luò)模型搭建

數(shù)據(jù)我們處理好了,后面就是模型的搭建了,我使用keras搭建的,操作簡單便捷,tf,pytorch,sklearn大家可以按照自己喜好來。

網(wǎng)絡(luò)模型可以選擇CNN,RNN,Attention結(jié)構(gòu),或者多模型的融合,拋磚引玉,此Baseline采用的一維CNN方式,一維CNN學(xué)習(xí)地址

模型搭建

TIME_PERIODS = 5000num_sensors = 12def build_model(input_shape=(TIME_PERIODS,num_sensors),num_classes=2): model = Sequential() #model.add(Reshape((TIME_PERIODS, num_sensors), input_shape=input_shape)) model.add(Conv1D(16, 16,strides=2, activation=‘relu’,input_shape=input_shape)) model.add(Conv1D(16, 16,strides=2, activation=‘relu’,padding=“same”)) model.add(MaxPooling1D(2)) model.add(Conv1D(64, 8,strides=2, activation=‘relu’,padding=“same”)) model.add(Conv1D(64, 8,strides=2, activation=‘relu’,padding=“same”)) model.add(MaxPooling1D(2)) model.add(Conv1D(128, 4,strides=2, activation=‘relu’,padding=“same”)) model.add(Conv1D(128, 4,strides=2, activation=‘relu’,padding=“same”)) model.add(MaxPooling1D(2)) model.add(Conv1D(256, 2,strides=1, activation=‘relu’,padding=“same”)) model.add(Conv1D(256, 2,strides=1, activation=‘relu’,padding=“same”)) model.add(MaxPooling1D(2)) model.add(GlobalAveragePooling1D()) model.add(Dropout(0.3)) model.add(Dense(num_classes, activation=‘softmax’)) return(model)

用model.summary()輸出的網(wǎng)絡(luò)模型為

訓(xùn)練參數(shù)比較少,大家可以根據(jù)自己想法更改。

3.網(wǎng)絡(luò)模型訓(xùn)練

模型訓(xùn)練

if name__ == “__main”: “”“dat1 = get_feature(”TRAIN101.mat“) print(”one data shape is“,dat1.shape) #one data shape is (12, 5000) plt.plot(dat1[0]) plt.show()”“” if (os.path.exists(MANIFEST_DIR)==False): create_csv() train_iter = xs_gen(train=True) test_iter = xs_gen(train=False) model = build_model() print(model.summary()) ckpt = keras.callbacks.ModelCheckpoint( filepath=‘best_model.{epoch:02d}-{val_acc:.2f}.h5’, monitor=‘val_acc’, save_best_only=True,verbose=1) model.compile(loss=‘categorical_crossentropy’, optimizer=‘a(chǎn)dam’, metrics=[‘a(chǎn)ccuracy’]) model.fit_generator( generator=train_iter, steps_per_epoch=500//Batch_size, epochs=20, initial_epoch=0, validation_data = test_iter, nb_val_samples = 100//Batch_size, callbacks=[ckpt], )

訓(xùn)練過程輸出(最優(yōu)結(jié)果:loss: 0.0565 - acc: 0.9820 - val_loss: 0.8307 - val_acc: 0.8800)

Epoch 10/2025/25 [==============================] - 1s 37ms/step - loss: 0.2329 - acc: 0.9040 - val_loss: 0.4041 - val_acc: 0.8700Epoch 00010: val_acc improved from 0.85000 to 0.87000, saving model to best_model.10-0.87.h5Epoch 11/2025/25 [==============================] - 1s 38ms/step - loss: 0.1633 - acc: 0.9380 - val_loss: 0.5277 - val_acc: 0.8300Epoch 00011: val_acc did not improve from 0.87000Epoch 12/2025/25 [==============================] - 1s 40ms/step - loss: 0.1394 - acc: 0.9500 - val_loss: 0.4916 - val_acc: 0.7400Epoch 00012: val_acc did not improve from 0.87000Epoch 13/2025/25 [==============================] - 1s 38ms/step - loss: 0.1746 - acc: 0.9220 - val_loss: 0.5208 - val_acc: 0.8100Epoch 00013: val_acc did not improve from 0.87000Epoch 14/2025/25 [==============================] - 1s 38ms/step - loss: 0.1009 - acc: 0.9720 - val_loss: 0.5513 - val_acc: 0.8000Epoch 00014: val_acc did not improve from 0.87000Epoch 15/2025/25 [==============================] - 1s 38ms/step - loss: 0.0565 - acc: 0.9820 - val_loss: 0.8307 - val_acc: 0.8800Epoch 00015: val_acc improved from 0.87000 to 0.88000, saving model to best_model.15-0.88.h5Epoch 16/2025/25 [==============================] - 1s 38ms/step - loss: 0.0261 - acc: 0.9920 - val_loss: 0.6443 - val_acc: 0.8400Epoch 00016: val_acc did not improve from 0.88000Epoch 17/2025/25 [==============================] - 1s 38ms/step - loss: 0.0178 - acc: 0.9960 - val_loss: 0.7773 - val_acc: 0.8700Epoch 00017: val_acc did not improve from 0.88000Epoch 18/2025/25 [==============================] - 1s 38ms/step - loss: 0.0082 - acc: 0.9980 - val_loss: 0.8875 - val_acc: 0.8600Epoch 00018: val_acc did not improve from 0.88000Epoch 19/2025/25 [==============================] - 1s 37ms/step - loss: 0.0045 - acc: 1.0000 - val_loss: 1.0057 - val_acc: 0.8600Epoch 00019: val_acc did not improve from 0.88000Epoch 20/2025/25 [==============================] - 1s 37ms/step - loss: 0.0012 - acc: 1.0000 - val_loss: 1.1088 - val_acc: 0.8600Epoch 00020: val_acc did not improve from 0.88000

4.模型應(yīng)用預(yù)測結(jié)果

預(yù)測數(shù)據(jù)

if name__ == “__main”: “”“dat1 = get_feature(”TRAIN101.mat“) print(”one data shape is“,dat1.shape) #one data shape is (12, 5000) plt.plot(dat1[0]) plt.show()”“” “”“if (os.path.exists(MANIFEST_DIR)==False): create_csv() train_iter = xs_gen(train=True) test_iter = xs_gen(train=False) model = build_model() print(model.summary()) ckpt = keras.callbacks.ModelCheckpoint( filepath=‘best_model.{epoch:02d}-{val_acc:.2f}.h5’, monitor=‘val_acc’, save_best_only=True,verbose=1) model.compile(loss=‘categorical_crossentropy’, optimizer=‘a(chǎn)dam’, metrics=[‘a(chǎn)ccuracy’]) model.fit_generator( generator=train_iter, steps_per_epoch=500//Batch_size, epochs=20, initial_epoch=0, validation_data = test_iter, nb_val_samples = 100//Batch_size, callbacks=[ckpt], )”“” PRE_DIR = “sample_codes/answers.txt” model = load_model(“best_model.15-0.88.h5”) pre_lists = pd.read_csv(PRE_DIR,sep=r“ ”,header=None) print(pre_lists.head()) pre_datas = np.array([get_feature(item,BASE_DIR=“preliminary/TEST/”) for item in pre_lists[0]]) pre_result = model.predict_classes(pre_datas)#0-1概率預(yù)測 print(pre_result.shape) pre_lists[1] = pre_result pre_lists.to_csv(“sample_codes/answers1.txt”,index=None,header=None) print(“predict finish”)

下面是前十條預(yù)測結(jié)果:

TEST394,0TEST313,1TEST484,0TEST288,0TEST261,1TEST310,0TEST286,1TEST367,1TEST149,1TEST160,1

展望

此Baseline采用最簡單的一維卷積達到了88%測試準確率(可能會因為隨機初始化值上下波動),大家也可以多嘗試GRU,Attention,和Resnet等結(jié)果,測試準確率會突破90+。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 心電圖
    +關(guān)注

    關(guān)注

    1

    文章

    80

    瀏覽量

    25641
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3648

    瀏覽量

    43676

原文標題:實戰(zhàn) | 基于KerasConv1D心電圖檢測開源教程(附代碼)

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    心電圖示儀的靜電和浪涌保護參考設(shè)計方案

    概述心電圖示儀作為一種精密醫(yī)療電子設(shè)備,通過WiFi、Bluetooth和NFC等傳輸數(shù)據(jù),其穩(wěn)定性和安全性至關(guān)重要。在設(shè)計和使用過程中,必須考慮靜電放電和浪涌等電磁干擾對其性能和安全
    的頭像 發(fā)表于 06-03 11:08 ?177次閱讀
    <b class='flag-5'>心電圖</b>示儀的靜電和浪涌保護參考設(shè)計方案

    STM32L431RCT6主芯片 搭配 SD NAND-動態(tài)心電圖設(shè)備存儲解決方案

    MKDV08GCL-STPA 貼片式TF卡存儲解決方案,實現(xiàn)設(shè)備性能的全面優(yōu)化。 動態(tài)心電圖設(shè)備對于存儲得要求:1)海量數(shù)據(jù)存儲需求 動態(tài)心電圖設(shè)備需要長時間、高頻率地采集心臟電信號,生成的數(shù)據(jù)量龐大
    發(fā)表于 03-27 10:56

    動態(tài)心電圖設(shè)備存儲解決方案——STM32L431RCT6主芯片 與 貼片式TF卡MKDV08GCL-STPA

    在醫(yī)療健康領(lǐng)域,心電圖設(shè)備是心臟疾病診斷的核心工具。隨著醫(yī)療技術(shù)的不斷進步,動態(tài)心電圖設(shè)備逐漸成為臨床診斷的主流選擇。它不僅能夠提供靜態(tài)心電圖數(shù)據(jù),還能實時記錄心臟活動的動態(tài)變化,為醫(yī)生提供更全
    的頭像 發(fā)表于 03-27 10:40 ?1039次閱讀
    動態(tài)<b class='flag-5'>心電圖</b>設(shè)備存儲解決方案——STM32L431RCT6主芯片 與 貼片式TF卡MKDV08GCL-STPA

    參考設(shè)計# 支持邊緣 AI 的無線 ECG 動態(tài)心電圖監(jiān)護儀

    該支持邊緣人工智能 (AI) 可穿戴生物傳感動態(tài)心電圖監(jiān)測儀參考設(shè)計提供了一個評估平臺,用于評估持續(xù)監(jiān)測心電圖(ECG)、心率、呼吸、起搏脈沖、體溫和運動等生命體征的最新產(chǎn)品。該設(shè)計利
    的頭像 發(fā)表于 02-17 17:54 ?744次閱讀
    參考設(shè)計# 支持邊緣 AI 的無線 ECG 動態(tài)<b class='flag-5'>心電圖</b>監(jiān)護儀

    ADS1292做心電放大的疑問誰來解答一下

    是硬件問題嗎?我沒有加右腿驅(qū)動。用的是ECG信號產(chǎn)生模塊,產(chǎn)生出的是1Hz,1mV的模擬心電信號。 出現(xiàn)在任何導(dǎo)聯(lián)電極間的差分心電圖信號的幅度都限定在±5 mV大小,頻率在0.05
    發(fā)表于 01-20 07:23

    ADS1298作為心電信號采集的模擬前端, 使用心電圖機檢定儀進行共模抑制比的測試時,結(jié)果不是很理想怎么改善?

    產(chǎn)品使用了ADS1298作為心電信號采集的模擬前端, 使用心電圖機檢定儀進行共模抑制比的測試時,結(jié)果不是很理想。右腿驅(qū)動和屏蔽驅(qū)動都使用了,還可能是哪些方面的原因,或者有什么方法可以改善。 1.是不是使用鍍金的連接器會好一點。
    發(fā)表于 01-08 08:05

    ADS1293采集到了心電數(shù)據(jù),如何畫成心電圖

    各位大神好,自己做的ADS1293的板子,然后采集到了下圖所示的數(shù)據(jù),請問對不對?然后這些數(shù)據(jù)該如何畫成心電圖?謝謝!!
    發(fā)表于 01-08 06:50

    用ads1298做了一個12導(dǎo)聯(lián)的心電圖設(shè)備,寄存器在板子上配置出來一直有問題,為什么?

    你好! 我用1298做了一個12導(dǎo)聯(lián)的心電圖設(shè)備,但是按照開發(fā)板配置的寄存器在我的板子上配置出來一直有問題.我的電路跟參考板一樣,想問一下這個寄存器配置應(yīng)該怎么配置?輸出的8chn數(shù)據(jù)是否就是LEAD1,LEDA2.v
    發(fā)表于 12-20 08:36

    用ADS1198設(shè)計12導(dǎo)的心電檢測儀遇到的信號采集問題求解

    請教TI工程師,我正在使用ADS1198設(shè)計12導(dǎo)的心電檢測儀,原理根據(jù)sbau180.pdf設(shè)計,模擬電源和數(shù)字電源都是采用3.3V單電源供電,中間用磁珠聯(lián)通.目前程序已經(jīng)完成,用心電模擬儀
    發(fā)表于 12-17 08:01

    開發(fā)一個基于ADS1293的心電圖機時遇到的疑問求解

    您好,我在開發(fā)一個基于ADS1293的心電圖機時遇到以下問題,希望能得到解答: 1. 當提高ODR過采樣率時(比如400HZ),所得到的波形干擾仍舊很大(如下I導(dǎo)聯(lián)),如何在保證高ODR采樣率時,得到正確的波形? 2. 這是我的ECG原始數(shù)據(jù)轉(zhuǎn)電壓計算公式,不知是否正確
    發(fā)表于 11-28 06:13

    使用MSP430FG439的心率和心電圖監(jiān)測器

    電子發(fā)燒友網(wǎng)站提供《使用MSP430FG439的心率和心電圖監(jiān)測器.pdf》資料免費下載
    發(fā)表于 10-22 09:30 ?0次下載
    使用MSP430FG439的心率和<b class='flag-5'>心電圖</b>監(jiān)測器

    CBM24AD9X系列-高性能心電圖及生物電勢測量的理想選擇

    在現(xiàn)代醫(yī)療科技的飛速發(fā)展中,精確的生物電勢測量設(shè)備變得越來越重要。芯佰微電子推出的CBM24AD9X系列,是一款專為心電圖(ECG)和其他生物電勢測量設(shè)計的低噪聲24位模數(shù)轉(zhuǎn)換器(ADC),為醫(yī)療
    的頭像 發(fā)表于 09-23 15:41 ?686次閱讀
    CBM24AD9X系列-高性能<b class='flag-5'>心電圖</b>及生物電勢測量的理想選擇

    使用MSP430G2xx LaunchPad套件實現(xiàn)基于心電圖的心率監(jiān)測器

    電子發(fā)燒友網(wǎng)站提供《使用MSP430G2xx LaunchPad套件實現(xiàn)基于心電圖的心率監(jiān)測器.pdf》資料免費下載
    發(fā)表于 09-20 10:47 ?0次下載
    使用MSP430G2xx LaunchPad套件實現(xiàn)基于<b class='flag-5'>心電圖</b>的心率監(jiān)測器

    可穿戴設(shè)備上的心電圖信號采集應(yīng)用簡報

    電子發(fā)燒友網(wǎng)站提供《可穿戴設(shè)備上的心電圖信號采集應(yīng)用簡報.pdf》資料免費下載
    發(fā)表于 09-10 09:19 ?0次下載
    可穿戴設(shè)備上的<b class='flag-5'>心電圖</b>信號采集應(yīng)用簡報

    推薦一款好用的十二導(dǎo)聯(lián)心電圖

    十二導(dǎo)聯(lián)心電圖機是一種醫(yī)療設(shè)備,用于檢測和記錄心臟電活動的變化。由十二個電極組成的,這些電極可以通過皮膚接觸到患者的胸部和四肢,實現(xiàn)對十二導(dǎo)聯(lián)心電信號進行同步采集,通過對心電信號的工頻
    發(fā)表于 07-11 18:34
    主站蜘蛛池模板: 新津县| 巩留县| 东阳市| 原阳县| 宁城县| 连山| 河曲县| 怀柔区| 那坡县| 南昌市| 东乌珠穆沁旗| 靖安县| 五大连池市| 民乐县| 肃宁县| 芜湖市| 南漳县| 华阴市| 淄博市| 梨树县| 广水市| 大厂| 盐边县| 彰化县| 融水| 涿鹿县| 阳谷县| 旺苍县| 九江县| 赞皇县| 固原市| 白水县| 临海市| 彰武县| 堆龙德庆县| 安塞县| 福建省| 呼伦贝尔市| 南靖县| 高淳县| 岳普湖县|