日期:2020.03.17-2020.03.18
Ref: <tensorflow工程化项目实战>
章节:chapter3
tf代码分析
p5 line16
tf.reset_default_graph()
解释:重置默认图,相当于将之前有的tf图清空
链接: tf.reset_default_graph().
p51 line34
arg_scope = pnasnet.pnasnet_large_arg_scope()
解释:获取模型命名空间,将slim库中的pnasnet模型的scope加载到接下来要用的空间中,即with slim.arg_scope(arg_scope)。
p51 line35
with slim.arg_scope(arg_scope)
解释:利用slim api中的空间获取方法加载库中已有的模型空间或是各种方法,例如slim.conv2d等。
链接: slim.arg_scope().
p51 line36
pnasnet.build_pnasnet_large()
解释:这是pnasnet构造网络的接口函数,输入为归一化好的图片及类别总数和网络状态(训练或是测试),输出为logits,为网络节点名称final_layer/FC/BiasAdd的结果以及end_points,它是一个类,用于储存pnasnet中的所有有用的变量,如每一个cell的output,以及最后的logits和predictions。
之后代码取出该类的预测值及预测类别结果各类的得分情况。
python语法
p50 line4
sys.path.insert(0,nets_path)
解释:这样新添加的目录会优先于其他目录被import检查,在这里可以使得下面的 from nets.nasnet import pnasnet 从slim文件夹下找到nets模块。
p51 line26
labels =list( map(getone,list(f)) )
解释:使用map内置函数使对象list(f)调用getone方法,并返回可迭代对象,并且为新list.
链接: map函数用法.
p53 line75
zip(yv,batchImg,orgImg)
解释:将三个输入打包成一个可迭代对象。
链接: zip()用法.
p35 line68
p2.imshow((img_norm * 255).astype(np.uint8))
解释:float32类型数据变成uint8需要乘上系数255
补充:
链接: RGBA.