日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 智能硬件 > 人工智能AI
[導(dǎo)讀] Tensorflow在更新1.0版本之后多了很多新功能,其中放出了很多用tf框架寫(xiě)的深度網(wǎng)絡(luò)結(jié)構(gòu),大大降低了開(kāi)發(fā)難度,利用現(xiàn)成的網(wǎng)絡(luò)結(jié)構(gòu),無(wú)論fine-tuning還是重新訓(xùn)練方便了不少。而且T

Tensorflow在更新1.0版本之后多了很多新功能,其中放出了很多用tf框架寫(xiě)的深度網(wǎng)絡(luò)結(jié)構(gòu),大大降低了開(kāi)發(fā)難度,利用現(xiàn)成的網(wǎng)絡(luò)結(jié)構(gòu),無(wú)論fine-tuning還是重新訓(xùn)練方便了不少。而且TensorFlow內(nèi)包含了一個(gè)強(qiáng)大的物體檢測(cè)API,我們可以利用這API來(lái)訓(xùn)練自己的數(shù)據(jù)集實(shí)現(xiàn)特殊的目標(biāo)檢測(cè)。最近筆者終于跑通TensorFlow Object DetecTIon API的ssd_mobilenet_v1模型,這里記錄下如何完整跑通數(shù)據(jù)準(zhǔn)備到模型使用的整個(gè)過(guò)程,相信對(duì)大家能有所幫助。

Object DetecTIon API提供了5種網(wǎng)絡(luò)結(jié)構(gòu)的預(yù)訓(xùn)練的權(quán)重,全部是用數(shù)據(jù)集進(jìn)行訓(xùn)練,這五種模型分別是SSD+mobilenet、SSD+incepTIon_v2、R-FCN+resnet101、faster RCNN+resnet101、faster RCNN+incepTIon+resnet101。各個(gè)模型的精度和計(jì)算所需時(shí)間如下。下面及介紹下如何使用Object Detection去訓(xùn)練自己的模型。

這里TensorFlow的安裝就不再說(shuō)明了,網(wǎng)上的教程一大把,大家可以找到很詳盡的安裝TensorFlow的文檔。

tensorflow 訓(xùn)練模型訓(xùn)練前準(zhǔn)備工作

使用protobuf來(lái)配置模型和訓(xùn)練參數(shù),所以API正常使用必須先編譯protobuf庫(kù),這里可以下載直接編譯好的pb庫(kù)( https://github.com/google/protobuf/releases ),解壓壓縮包后,把protoc加入到環(huán)境變量中:
$ cd tensorflow/models

$ protoc object_detection/protos/*.proto --python_out=.

(我是把protoc加到環(huán)境變量中,遇到找不到*.proto文件的報(bào)錯(cuò),后來(lái)把protoc.exe放到models/object_detection目錄下,重新執(zhí)行才可以)

然后將models和slim(tf高級(jí)框架)加入python環(huán)境變量:
PYTHONPATH=$PYTHONPATH:/your/path/to/tensorflow/models:/your/path/to/tensorflow/models/slim

tensorflow 訓(xùn)練模型數(shù)據(jù)準(zhǔn)備

數(shù)據(jù)集需要轉(zhuǎn)化成PASCAL VOC結(jié)構(gòu),API提供了create_pascal_tf_record.py,把VOC結(jié)構(gòu)數(shù)據(jù)集轉(zhuǎn)換成.record格式。不過(guò)我們發(fā)現(xiàn)更簡(jiǎn)單的方式,Datitran提供一種更簡(jiǎn)單生產(chǎn).record格式的方法。

首先需要先要標(biāo)注圖像相應(yīng)標(biāo)簽,這里可以使用labelImg工具。每標(biāo)注一張樣本,即生成一個(gè)xml的標(biāo)注文件。然后,把這些標(biāo)注的xml文件,按訓(xùn)練集與驗(yàn)證集分別放置到兩個(gè)目錄下,在Datitran提供了xml_to_csv.py腳本。這里只要指定標(biāo)注的目錄名即可。接下來(lái),然后需要我們把對(duì)應(yīng)的csv格式轉(zhuǎn)換成.record格式。

def main():
# image_path = os.path.join(os.getcwd(), 'annotations')
image_path = r'D: raining-setsobject-detectionsunglasseslabel est'
xml_df = xml_to_csv(image_path)
xml_df.to_csv('sunglasses_test_labels.csv', index=None)
print('Successfully converted xml to csv.')

調(diào)用generate_tfrecord.py,注意要指定--csv_input與--output_path這兩個(gè)參數(shù)。執(zhí)行下面命令:
python generate_tfrecord.py --csv_input=sunglasses_test_labels.csv --output_path=sunglass_test.record

這樣就生成了訓(xùn)練及驗(yàn)證用的train.record與test.record。接下來(lái)指定標(biāo)簽名稱(chēng),仿照models/ object_detection/data/ pet_label_map.pbtxt,重新創(chuàng)建一個(gè)文件,指定標(biāo)簽名。
item {
id: 1
name: 'sunglasses'
}

tensorflow 訓(xùn)練模型訓(xùn)練教程

根據(jù)自己的需要,選擇一款用coco數(shù)據(jù)集預(yù)訓(xùn)練的模型,把前綴model.ckpt放置在待訓(xùn)練的目錄,這里meta文件保存了graph和metadata,ckpt保存了網(wǎng)絡(luò)的weights,這幾個(gè)文件表示預(yù)訓(xùn)練模型的初始狀態(tài)。

打開(kāi)ssd_mobilenet_v1_pets.config文件,并做如下修改:

num_classes:修改為自己的classes num

將所有PATH_TO_BE_CONFIGURED的地方修改為自己之前設(shè)置的路徑(共5處)

其他參數(shù)均保持默認(rèn)參數(shù)。

準(zhǔn)備好上述文件后就可以直接調(diào)用train文件進(jìn)行訓(xùn)練。
python object_detection/train.py
--logtostderr
--pipeline_config_path= D:/training-sets /data-translate/training/ssd_mobilenet_v1_pets.config
--train_dir=D:/training-sets/data-translate/training

TensorBoard監(jiān)控:

通過(guò)tensorboard工具,可以監(jiān)控訓(xùn)練過(guò)程,輸入西面指令后,在瀏覽器輸入localhost:6006(默認(rèn))即可。
tensorboard --logdir= D:/training-sets/data-translate/training

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉