项目三 独立的图像识别模型(一)
项目三 独立的图像识别模型(一)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Coulson_Zhao/article/details/83657465 1 微调的概念
以常见的VGG16作为例子,我们采用VGG16在ImageNet上已经训练好的网络参数作为初始值,并只根据需要来重新训练所有参数或是部分参数。而微调主要有以下几种情况:
1.只训练最后一个全连接层与倒数第二个全连接层之间的参数,即保留绝大部分参数,适用于拥有图片较小的情况
2.训练所有参数,即使用网络思想不使用数据,适用于数据量较大
3.训练深层参数,即训练卷积层3、4、5,全连接层6、7、8。这也是最常见的形式
2 在tensorflow中进行微调
我们使用提供的图片,并将他们转换为tfrecord模式
我们使用命令 python data_convert.py -t data_prepare/pic/ --train-shards 2 --validation-shards 2 --num-threads 2 --dataset-name satellite
这里是生成训练用的数据及文本文档
在生成的过程中,发现书中提供代码中出现几处错误,主要体现在:
1.无法导入tfrecord.py,解决方法为将tfrecord和data_convert放在主目录下,并将pic/改为data_prepare/pic/
2.报错'range' object does not support item assignment,在tfrecord中339行更改为
shuffled_index = list(range(len(filenames))) 3.报错'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence,在tfrecord中160行更改为
with open(filename, 'rb') as f: 4.报错'RGB' has type <class 'str'>, but expected one of: ((<class 'bytes'>,),),在tfrecord中94 96行改为:
colorspace = b'RGB' channels = 3 image_format = b'JPEG' 5.报错'urban' has type <class 'str'>, but expected one of: ((<class 'bytes'>,),)和
报错'76000_99449_18.jpg' has type <class 'str'>, but expected one of: ((<class 'bytes'>,),)
将tfrecord中219行左右处添加
text = text.encode() filename = filename.encode() 6.报错File "F:\python\各种练习\项目3\tfrecord.py", line 146, in _is_png return '.png' in filename TypeError: a bytes-like object is required, not 'str'
将tfrecord中146行改为:
return b'.png' in filename 则现在没有任何错误,可以生成预定的两个训练集,两个验证集,一个.txt的类别文件 --------------------- 作者:Coulson_Zhao 来源:CSDN 原文:https://blog.csdn.net/Coulson_Zhao/article/details/83657465 版权声明:本文为博主原创文章,转载请附上博文链接!

浙公网安备 33010602011771号