【神经网络实践】tentorflow上的多目标识别(1)

本文记录了作者在VOC2012数据集上使用PNASNet进行多目标识别的实践过程。通过修改PNASNet网络结构,结合最后的瓶颈层进行多目标识别。涉及到XML解析、one_hot向量生成以及数据格式转换的代码实现。
摘要由CSDN通过智能技术生成

前言:

{

    这段时间一直在更新论文的阅读记录,文字太多,这次的形式就改成了实践记录。

    本次的目标是在VOC2012数据集上实现多目标识别。

}

 

正文:

{

    最近发现了一个目前目标识别效果比较好的新网络:PNASNet[1],就把它拿来改改。不求很好的效果,只是想做做实践换换口味。本次的计划是从PNASNet中的一些部位引出一些张量,配合着最后的瓶颈层一起进行多目标识别。

    PNASNet的论文我没有细看,只知道其是自动生成的一种结构,包含了一种新的单元:PNASCell[1],PNASCell由分为normal和reduction两种(后置会将输入张量的长宽减半)。在我找到的其基于tentorflow的代码[2]中,网络在一层卷积层后一共有14个PNASCell,前2个PNASCell为reduction类,后面每3个normal类就会加一个reduction类。

    VOC2012数据集中一共有20个大类,标签都是以xml文件储存,所以这里涉及到了Python下对xml的解析。代码1的打印结果为一个xml文件中所有object的使用name的文本。

#代码1

import xml.etree.ElementTree as ET

domtree = ET.parse(xml_path+'/'+xml_name)
domroot = domtree.getroot()
objects = domroot.iter('object')
for object in objects:
    print(object.find('name').text)  #打印object项里的所有name项中的文字

    而且还涉及到了one_hot向量的生成。见代码2。

#代码2

def numpy_one_hot(number, max):
    result = np.ones(max) * 0
    result[number] = 1
    return result

    这次先写出了数据格式转换的代码,见代码3。

#代码3

# -- coding: utf-8 --
'''
此文件实现JPG和xml标签到TFRecord的转换(VOC2012版本),其中对每个JPG源文件都会生成一个TFRecord目标文件。
文件名“test_data_28.TFRecord”表示测试数据的第29个文件(第一个文件的文件号为0)。
'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值