用已经训练好的模型对每张图片去处理特征:
本文使用的是 inception_V3的checkpoint去对flicker30k的每张图片进行处理它的特征:
需要用到的文件:
这个文件的作用:
checkpoint里存的是各个变量的数值,我们需要重新去构建计算图后可以把checkpoint里的变量值载入进来,就是这个图中对应的变量去checkpoint读取变量值,在tensorflow中还支持对checkpoint做进一步的处理,tensorflow中有一个工具觉freezegraph,就是将checkpoint和计算图给结合起来的一种工具,就是它生成的图是graph和checkpoint变量都在这里面,使用这张图我们就不需要先重建图再去载入变量,直接导入这张图,因为这张图里都是固定的变量,然后就可以直接用这张图里的计算方法去进行处理了~
即这个文件就是由一个freezegraph处理得到的工具~
1.首先载入必要的库:
(2)定义输入输出文件:
(3)因为有大约3万张图片,将所有的图片特征都抽取出放到一个文件夹下是不明智的,所以把这些数据存储在多个文件中,这样每个文件的载入都不会占用太多的时间,所以需要一个参数来确保如何去切分这些数据,即每个子文件中存放多少个数据:
即将30000张图片分成30000/100个文件,每个文件有100个小文件
判断输出文件夹是否存在,如果不存在的话需要去建立它:
(4)解析图片描述文件:
将图片描述文件和图片的对应关系用一个字典表达出来:
测试一下:
以上,完成~