在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

教你如何搭建淺層神經(jīng)網(wǎng)絡(luò)"Hello world"

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-10 18:35 ? 次閱讀
作為圖像識(shí)別與機(jī)器視覺(jué)界的 "hello world!" ,
MNIST ("Modified National Institute of Standards and Technology")
數(shù)據(jù)集有著舉足輕重的地位。基本上每本人工智能機(jī)器學(xué)習(xí)相關(guān)的書(shū)上都以它作為開(kāi)始。

下面我們會(huì)用 TensorFlow 搭建一個(gè)淺層的神經(jīng)網(wǎng)絡(luò)來(lái)運(yùn)行 "hello world!" 模型。 以下內(nèi)容和模塊的運(yùn)算,均在矩池云平臺(tái)進(jìn)行。

本次教程分五步:

第一步:數(shù)據(jù)預(yù)處理,包括提取數(shù)據(jù)標(biāo)簽、查看圖片數(shù)據(jù)、數(shù)據(jù)可視化、查看數(shù)據(jù)是否平衡等

第二步:數(shù)據(jù)加載,打亂數(shù)據(jù)集

第三步:構(gòu)建模型,簡(jiǎn)單介紹網(wǎng)絡(luò)卷積模型和激活函數(shù),定義訓(xùn)練函數(shù)和學(xué)習(xí)率

第四步:模型訓(xùn)練,查看訓(xùn)練過(guò)程和結(jié)果,使用圖表查看模型精確度和學(xué)習(xí)率變化

第五步:嘗試提升精準(zhǔn)度,不斷探索和優(yōu)化

在搭建開(kāi)始前,我們需要加載以下對(duì)應(yīng)的模塊:

第一步:數(shù)據(jù)預(yù)處理

1.1查看數(shù)據(jù)標(biāo)簽

在任何模型建立之前,應(yīng)當(dāng)優(yōu)先查看數(shù)據(jù)的情況。例如數(shù)據(jù)集的大小、訓(xùn)練集和測(cè)試集的數(shù)據(jù)數(shù)量、標(biāo)簽的數(shù)據(jù)數(shù)量分布等。
下方為訓(xùn)練集和測(cè)試集的數(shù)據(jù)查看代碼:

train = pd.read_csv('mnist/mnist_train.csv') # read train
test = pd.read_csv('mnist/mnist_test.csv') # read train

下方為訓(xùn)練集和測(cè)試集的數(shù)量結(jié)果:

train.shape   (6000,785)
test.shape    (10000,785)

我們可以看到 train 訓(xùn)練集里面有6000條數(shù)據(jù),test 測(cè)試集里面有10000條數(shù)據(jù),兩個(gè)測(cè)試集每行都有785個(gè)數(shù)據(jù)。

接下來(lái),我們來(lái)看下數(shù)據(jù)集的預(yù)覽:其中第一列是標(biāo)簽列,剩余784列則為像素點(diǎn)數(shù)據(jù),由該784列數(shù)據(jù)組成一張28*28的像素圖片。

1.2 提取數(shù)據(jù)標(biāo)簽

接下來(lái),我們進(jìn)行數(shù)據(jù)標(biāo)簽的提取和處理。先來(lái)看下標(biāo)簽數(shù)據(jù)的提取代碼:

train_labels = np.array(train.pop('label'))
test_labels = np.array(test.pop('label'))

查看標(biāo)簽種類(lèi),我們可以看出標(biāo)簽表示了從0~9的數(shù)字,沒(méi)有其他的錯(cuò)誤數(shù)據(jù)。

由于運(yùn)算需要,我們需要將一維的圖片數(shù)據(jù)轉(zhuǎn)換成二維圖片數(shù)據(jù)。將圖片數(shù)據(jù)轉(zhuǎn)換成長(zhǎng)28,寬28,通道為1的格式,方便卷積計(jì)算。

第二步:數(shù)據(jù)可視化

2.1 隨機(jī)生成數(shù)據(jù)匹配

現(xiàn)在隨機(jī)選取一些我們已經(jīng)轉(zhuǎn)換好的圖片數(shù)據(jù),用 matplot 來(lái)查看下標(biāo)簽和圖片是否能夠?qū)ι稀?/p>

方框內(nèi)是隨機(jī)生成的一些非規(guī)則寫(xiě)法,圖片上方正中間則為對(duì)應(yīng)的數(shù)字。

2.2 查看數(shù)據(jù)是否平衡

分類(lèi)器的設(shè)計(jì)都是基于類(lèi)分布大致平衡這一假設(shè),通常假定用于訓(xùn)練的數(shù)據(jù)是平衡的,即各類(lèi)所含樣本數(shù)大致相當(dāng)。

下面我們來(lái)看下標(biāo)簽的分布情況,查看每個(gè)標(biāo)簽種類(lèi)的數(shù)據(jù)量是否分布均勻。

在 MINST 數(shù)據(jù)集中,我們的數(shù)據(jù)是處于一個(gè)均勻分布的狀態(tài)。

sns.distplot(train_labels, kde=False, bins=10)

2.3 數(shù)據(jù)加載

在建立模型之前,我們需要先定義一些常量:

# 圖像寬度
width = 28
# 圖像高度
height = 28
# batch size
batch_size = 100
# 訓(xùn)練圖片數(shù)量
train_images_num = train.shape[0]

下一步,我們?yōu)槟P徒?shù)據(jù)集。TensorFlow 提供了 Dataset 類(lèi)可以方便加載訓(xùn)練的數(shù)據(jù),使用方式為 tf.data.Dataset。

其中,訓(xùn)練集的數(shù)據(jù),我們進(jìn)行了隨機(jī)打亂。

train = tf.cast(train, tf.float32)
test = tf.cast(test, tf.float32)
train_ds = tf.data.Dataset.from_tensor_slices((train, train_labels)).shuffle(train_images_num).batch(batch_size)
test_ds = tf.data.Dataset.from_tensor_slices((test, test_labels)).batch(batch_size)

第三步:模型構(gòu)建

3.1 構(gòu)建模型的網(wǎng)絡(luò)層次結(jié)構(gòu)

數(shù)字識(shí)別作為入門(mén)工程,我們的模型也會(huì)相對(duì)的簡(jiǎn)單。當(dāng)前構(gòu)建模型,采用了以下幾層網(wǎng)絡(luò)層次結(jié)構(gòu):

  • 第一層二維卷積層
  • Flatten 層:這層的作用是將第一層的卷積曾平坦壓縮成一維,常用在從卷積層到全連接曾的過(guò)度,當(dāng)然 Flatten 不影響 batch 的大小
  • Dense 層:全連接神經(jīng)網(wǎng)絡(luò)層
  • Dense 層:全連接神經(jīng)網(wǎng)絡(luò)層

每一層對(duì)應(yīng)的激活函數(shù)如下:

  • 第一層使用 ReLU 函數(shù)
  • Flatten 層( 無(wú) )
  • Dense 層 ReLU 函數(shù)
  • Dense 層使用 softmax 損失函數(shù)進(jìn)行輸出

3.2 關(guān)于激活函數(shù)的解釋說(shuō)明

ReLU函數(shù)

ReLU 函數(shù)全名為線(xiàn)性整流函數(shù)(Rectified Linear Unit, ReLU),又稱(chēng)修正線(xiàn)性單元,是一種人工神經(jīng)網(wǎng)絡(luò)中常用的激活函數(shù)(activation function),通常指代以斜坡函數(shù)及其變種為代表的非線(xiàn)性函數(shù)。

從函數(shù)的表達(dá)可以看出,函數(shù)抑制了比 0 小的輸入,這個(gè)激活函數(shù)有以下特點(diǎn):

  • 收斂快
  • 在[ 0, x ]區(qū)間內(nèi)不會(huì)飽和,即它可以對(duì)抗梯度消失問(wèn)題
  • 求導(dǎo)簡(jiǎn)單,也就是它的計(jì)算效率很高

softmax 函數(shù)

softmax 用于多分類(lèi)過(guò)程中,它將多個(gè)神經(jīng)元的輸出映射到(0,1)區(qū)間內(nèi),可以看成概率來(lái)理解,從而來(lái)進(jìn)行多分類(lèi)。

我們來(lái)看下它的數(shù)學(xué)表達(dá)式,假設(shè)我們有一個(gè)數(shù)組,?V,??Vi 表示 ?V 中的第 ?i 個(gè)元素,那么這個(gè)元素的 softmax 值就是:

在我們的數(shù)字識(shí)別的模型中,我們將最后的輸出成一個(gè)10個(gè)元素的數(shù)組,數(shù)組從0下標(biāo)開(kāi)始到9,分別表示對(duì)應(yīng)的標(biāo)簽。

然后對(duì)這個(gè)輸出進(jìn)行 softmax 計(jì)算,取出 softmax 值最大的那個(gè)元素對(duì)應(yīng)的標(biāo)簽作為我們的分類(lèi)結(jié)果。

class MNIST(Model):
  def __init__(self):
    super(MNIST, self).__init__()
    self.conv1 = Conv2D(width, 3, activation='relu')
    self.flatten = Flatten()
    self.d1 = Dense(128, activation='relu')
    self.d2 = Dense(10, activation='softmax')

  def call(self, x):
    x = self.conv1(x)
    x = self.flatten(x)
    x = self.d1(x)
    return self.d2(x)

model = MNIST()
model.build(input_shape=train.shape

3.3 查看模型的構(gòu)建情況

本文利用 summary 接口來(lái)查看模型的情況,可以看到我們的每層網(wǎng)絡(luò)的類(lèi)型、輸出、參數(shù)的個(gè)數(shù),最下面還是統(tǒng)計(jì)了可訓(xùn)練參數(shù),全部參數(shù)的情況。

我們選用交叉熵函數(shù)作為我們的損失函數(shù),基本公式如下:

batch 公式:

用隨機(jī)梯度下降算法作為我們的優(yōu)化器:

loss_object = tf.keras.losses.SparseCategoricalCrossentropy()
optimizer = tf.keras.optimizers.SGD()
train_loss = tf.keras.metrics.Mean(name='train_loss')
train_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='train_accuracy')

test_loss = tf.keras.metrics.Mean(name='test_loss')
test_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='test_accuracy')

定義 train_step 函數(shù):

@tf.function
def train_step(images, labels):
    with tf.GradientTape() as tape:
        predictions = model(images)
        loss = loss_object(labels, predictions)
    gradients = tape.gradient(loss, model.trainable_variables)
    optimizer.apply_gradients(zip(gradients, model.trainable_variables))

    train_loss(loss)
    train_accuracy(labels, predictions)

定義 test_step 函數(shù):

@tf.function
def test_step(images, labels):
    predictions = model(images)
    t_loss = loss_object(labels, predictions)
    test_loss(t_loss)
    test_accuracy(labels, predictions)

一般情況下,學(xué)習(xí)率 ( learning rate ) 不適合設(shè)置為常數(shù)。在訓(xùn)練不斷迭代的情況下,常量的學(xué)習(xí)率會(huì)導(dǎo)致模型收斂性變差。

在不斷的迭代過(guò)程中,損失函數(shù) ( loss ) 越來(lái)越小,因此我們希望學(xué)習(xí)率也越來(lái)越小,從而能夠讓模型收斂到一個(gè)更好的局部最優(yōu)點(diǎn)。

這里我們簡(jiǎn)單的讓學(xué)習(xí)率在每 epoch 中都以一定大小遞減。

def lr_fn(epoch, lr):
    if epoch == 0:
        return 0.001
    
    return lr * 0.9

設(shè)定一個(gè)較大的 epoch,我們?cè)谀P陀?xùn)練的時(shí)候做了 early stop 策略。當(dāng)訓(xùn)練精度小于上一次 epoch 的精度,我們認(rèn)為模型進(jìn)入了過(guò)擬合了。

我們會(huì)停止訓(xùn)練這個(gè)也是一種防止過(guò)擬合的策略。

第四步:模型訓(xùn)練

我們?cè)谟?xùn)練中記錄下了每一次 epoch 的訓(xùn)練集和測(cè)試集精度的統(tǒng)計(jì)以及學(xué)習(xí)率,為了訓(xùn)練完成后查看訓(xùn)練過(guò)程的效果。

我們可以看到的訓(xùn)練結(jié)果:

然后我們把訓(xùn)練中的記錄下來(lái)的訓(xùn)練集和測(cè)試集的精確度結(jié)果放到圖表中,用以查看我們的訓(xùn)練情況:綠色為測(cè)試集曲線(xiàn),藍(lán)色為訓(xùn)練集曲線(xiàn)。

plt.plot(epoch_range, train_accuracy_total, '-b', label= "training")
plt.plot(epoch_range, test_accuracy_total, '-g', label= "test")
plt.legend()
plt.xlabel('epoch')
plt.ylabel('accuracy')

從圖表中可以看出,在經(jīng)過(guò)不斷的 epoch 迭代以后,模型的精度在開(kāi)始的幾個(gè) epoch 后迅速提升(這表示收斂速度很快)。后面的幾個(gè) epoch 模型的精度曲線(xiàn)趨向于平穩(wěn),收斂速度放緩。

查看學(xué)習(xí)率的遞減情況:

plt.plot(epoch_range, lr_total, '-b', label= "training")
plt.legend()
plt.xlabel('epoch')
plt.ylabel('learning rate')

第五步:探索和優(yōu)化

后續(xù)讀者可以從以下這幾個(gè)方面來(lái)進(jìn)行嘗試,嘗試提高模型的準(zhǔn)確率。

  • 更深的網(wǎng)絡(luò)層次,可以更換模型,比如使用 VGG16,ResNet 等更深的網(wǎng)絡(luò),或者在現(xiàn)有的網(wǎng)絡(luò)中添加更多的卷積層進(jìn)行嘗試
  • 更多的訓(xùn)練數(shù)據(jù),數(shù)據(jù)量的增長(zhǎng)能極大的提高模型的精度跟泛化能力
  • 使用別的優(yōu)化器,比如:adam
  • 調(diào)整學(xué)習(xí)率

矩池云現(xiàn)在已經(jīng)全線(xiàn)上架 “機(jī)器圖像識(shí)別” 鏡像;

選擇 “ 圖像識(shí)別demo ” 鏡像,機(jī)器啟動(dòng)后,在 JupyterLab 目錄中選擇

digit-recognizer 文件夾,矩池云已經(jīng)將數(shù)據(jù)集和腳本都集成在其中,執(zhí)行其中的 ipynb 文件,即可運(yùn)行上述識(shí)別腳本。

審核編輯 黃昊宇

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

    關(guān)注

    1792

    文章

    47424

    瀏覽量

    238948
  • 人工神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    1

    文章

    120

    瀏覽量

    14644
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8425

    瀏覽量

    132769
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4799

    瀏覽量

    84812
  • tensorflow
    +關(guān)注

    關(guān)注

    13

    文章

    329

    瀏覽量

    60541
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    人工神經(jīng)網(wǎng)絡(luò)原理及下載

    這個(gè)網(wǎng)絡(luò)輸入和相應(yīng)的輸出來(lái)“訓(xùn)練”這個(gè)網(wǎng)絡(luò)網(wǎng)絡(luò)根據(jù)輸入和輸出不斷地調(diào)節(jié)自己的各節(jié)點(diǎn)之間的權(quán)值來(lái)滿(mǎn)足輸入和輸出。這樣,當(dāng)訓(xùn)練結(jié)束后,我們給定一個(gè)輸入,網(wǎng)絡(luò)便會(huì)根據(jù)自己已調(diào)節(jié)好的權(quán)值計(jì)算
    發(fā)表于 06-19 14:40

    基于labview的BP人工神經(jīng)網(wǎng)絡(luò)曲線(xiàn)擬合小程序

    `點(diǎn)擊學(xué)習(xí)>>《龍哥手把手教你學(xué)LabVIEW視覺(jué)設(shè)計(jì)》視頻教程用LabVIEW實(shí)現(xiàn)的BP人工神經(jīng)網(wǎng)絡(luò)曲線(xiàn)擬合,感謝LabVIEW的矩陣運(yùn)算函數(shù),程序流程較
    發(fā)表于 12-13 16:41

    【PYNQ-Z2試用體驗(yàn)】基于PYNQ的神經(jīng)網(wǎng)絡(luò)自動(dòng)駕駛小車(chē)-搭建神經(jīng)網(wǎng)絡(luò)

    在之前的帖子中,我們完成了神經(jīng)網(wǎng)絡(luò)自動(dòng)駕駛小車(chē)的硬件搭建與底盤(pán)控制。當(dāng)小車(chē)通過(guò)WiFi無(wú)線(xiàn)連接到網(wǎng)絡(luò)后,已經(jīng)可以對(duì)其進(jìn)行遠(yuǎn)程操控,成為一輛無(wú)線(xiàn)遙控小車(chē),但是這還不夠,本講我們將為它搭建
    發(fā)表于 03-09 22:10

    輕量化神經(jīng)網(wǎng)絡(luò)的相關(guān)資料下載

    原文鏈接:【嵌入式AI部署&基礎(chǔ)網(wǎng)絡(luò)篇】輕量化神經(jīng)網(wǎng)絡(luò)精述--MobileNet V1-3、ShuffleNet V1-2、NasNet深度神經(jīng)網(wǎng)絡(luò)模型被廣泛應(yīng)用在圖像分類(lèi)、物
    發(fā)表于 12-14 07:35

    用CubeAI導(dǎo)入神經(jīng)網(wǎng)絡(luò)報(bào)錯(cuò)N-dimensional?tensors?not?supported?with?N?>?怎么解決?

    用CubeAI導(dǎo)入神經(jīng)網(wǎng)絡(luò)報(bào)錯(cuò)N-dimensional tensors not supported with N > 5,但是用的只是傳統(tǒng)的CNN網(wǎng)絡(luò)
    發(fā)表于 08-07 14:26

    Keras搭建神經(jīng)網(wǎng)絡(luò)的一般步驟

    參考https://keras.io/zh/ 的安裝指引。 2 使用Keras搭建神經(jīng)網(wǎng)絡(luò)的步驟 2 示例 搭建一個(gè)最簡(jiǎn)單的手寫(xiě)數(shù)字識(shí)別MNIST step1:選擇順序模型并初始化 model
    發(fā)表于 08-18 07:35

    AVR入門(mén):怎么樣由AVR USART實(shí)現(xiàn)發(fā)送"Hello World!"

    AVR入門(mén): 由AVR USART發(fā)送"Hello World!" (#20)
    的頭像 發(fā)表于 07-08 11:05 ?2638次閱讀

    基于改進(jìn)郊狼優(yōu)化算法的淺層神經(jīng)網(wǎng)絡(luò)進(jìn)化

    基于改進(jìn)郊狼優(yōu)化算法的淺層神經(jīng)網(wǎng)絡(luò)進(jìn)化
    發(fā)表于 06-24 15:40 ?15次下載

    "STM32F0 Error: Flash Download failed - ""Cortex-M0""解決"

    開(kāi)發(fā)工具CUbemx + Keil uVision5(MDK V5)錯(cuò)誤現(xiàn)象在STM32F0燒錄程序是出現(xiàn)了Error: Flash Download failed - &quot
    發(fā)表于 12-01 12:06 ?33次下載
    &<b class='flag-5'>quot</b>;STM32F0 Error: Flash Download failed  -  &<b class='flag-5'>quot</b>;&<b class='flag-5'>quot</b>;Cortex-M0&<b class='flag-5'>quot</b>;&<b class='flag-5'>quot</b>;解決&<b class='flag-5'>quot</b>;

    低壓空氣斷路器World Super AE V Series&amp;quot; 喜獲 &amp;quot;2021 R&amp;amp;D 100 Awards

    低壓空氣斷路器World Super AE V Series C-class 作為工廠(chǎng)和建筑等低壓受配電設(shè)備的主干斷路器,因其創(chuàng)新性技術(shù)研發(fā),喜獲 2021 R&amp;D 100 Awards
    發(fā)表于 02-10 14:38 ?1298次閱讀
    低壓空氣斷路器<b class='flag-5'>World</b> Super AE V Series&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>; 喜獲 &<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;2021 R&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;D 100 Awards

    谷歌教你用&amp;quot;注意力&amp;quot;提升產(chǎn)品體驗(yàn)

    之前的模型大多利用手工制作的視覺(jué)線(xiàn)索特征,如顏色/亮度對(duì)比度、邊緣和形狀等,最近也有一些方法轉(zhuǎn)向基于深度神經(jīng)網(wǎng)絡(luò)來(lái)自動(dòng)學(xué)習(xí)判別特征,使用的模型包括卷積、遞歸神經(jīng)網(wǎng)絡(luò)以及視覺(jué)Transformer網(wǎng)絡(luò)等。
    的頭像 發(fā)表于 06-27 14:37 ?438次閱讀
    谷歌<b class='flag-5'>教你</b>用&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;注意力&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;提升產(chǎn)品體驗(yàn)

    芯片工藝的&amp;quot;7nm&amp;quot; 、&amp;quot;5nm&amp;quot;到底指什么?

    近幾年,芯片產(chǎn)業(yè)越來(lái)越火熱,一些行業(yè)內(nèi)的術(shù)語(yǔ)大家也聽(tīng)得比較多了。那么工藝節(jié)點(diǎn)、制程是什么,&quot;7nm&quot; 、&quot;5nm&quot;又是指什么?
    的頭像 發(fā)表于 07-28 17:34 ?8514次閱讀
    芯片工藝的&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;7nm&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>; 、&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;5nm&<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;到底指什么?

    卷積神經(jīng)網(wǎng)絡(luò)模型搭建

    卷積神經(jīng)網(wǎng)絡(luò)模型搭建 卷積神經(jīng)網(wǎng)絡(luò)模型是一種深度學(xué)習(xí)算法。它已經(jīng)成為了計(jì)算機(jī)視覺(jué)和自然語(yǔ)言處理等各種領(lǐng)域的主流算法,具有很大的應(yīng)用前景。本篇文章將詳細(xì)介紹卷積神經(jīng)網(wǎng)絡(luò)模型的
    的頭像 發(fā)表于 08-21 17:11 ?973次閱讀

    R&amp;amp;S攜手Skylo Technologies增強(qiáng)非地面網(wǎng)絡(luò)(NTN)測(cè)試服務(wù)

    羅德與施瓦茨(以下簡(jiǎn)稱(chēng)&quot;R&amp;S公司&quot;)攜手Skylo Technologies打造用于Skylo非地面網(wǎng)絡(luò)(NTN)的設(shè)備驗(yàn)收方案。
    的頭像 發(fā)表于 10-20 09:50 ?725次閱讀

    全方位精準(zhǔn)測(cè)量技術(shù)助力:中國(guó)經(jīng)濟(jì)加力發(fā)展向前&amp;amp;quot;進(jìn)&amp;amp;quot;

    全方位精準(zhǔn)測(cè)量技術(shù)助力:中國(guó)經(jīng)濟(jì)加力發(fā)展向前&quot;進(jìn)&quot;
    的頭像 發(fā)表于 07-15 09:53 ?376次閱讀
    全方位精準(zhǔn)測(cè)量技術(shù)助力:中國(guó)經(jīng)濟(jì)加力發(fā)展向前&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;進(jìn)&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>quot</b>;
    主站蜘蛛池模板: 激情五月宗合网| 黄色日屁| 亚洲欲色| 亚洲vv| 色五月情| 国产国拍亚洲精品mv在线观看| 国产精品露脸脏话对白| 91久久人澡人人添人人爽| 欧美人与物另类| 亚洲一区二区三区网站| 在线种子搜索| 特黄特色视频| 免费播放黄色| 艹逼视频免费观看| 日日干视频| 亚洲毛片儿| 男女一进一出抽搐免费视频| 亚洲精品自拍区在线观看| 色婷婷色婷婷| 狠狠色网站| 天天看夜夜操| 啪啪网站视频| 狠狠色丁香婷婷综合久久片| 国产色爽女小说免费看| 亚洲午夜久久| 国产夜夜操| 日本黄页网站| 182福利视频| 免费视频一级片| 欧美成人在线网站| 最近新韩国hd视频| 日本三级强在线观看| 国产成视频| 乱人伦一区二区三区| 久久综合色播| xxxx日| 午夜色视频| 久久国产精品永久免费网站| 夜夜操天天射| 777午夜精品免费播放| 2023av网站|