Page 105 - 高中 信息技术 选择性必修4 人工智能初步
P. 105
4.3 人工智能应用系统项目实施
model_dir = "./inception"
(5)存放训练模型。
读取并创建一个图“graph”来存放训练好的Inception v3模型。
with tf.gfile.FastGFile(os.path.join(model_dir,'classify_image_graph_def.pb'), 'rb') as f:
graph_def = tf.GraphDef( )
graph_def.ParseFromString(f.read( ))
tf.import_graph_def(graph_def, name='')
广东教育出版社
(6)识别物体。
创建会话,识别图片中的事物,并输出结果。
with tf.Session( ) as sess:
# 设置Inception v3模型的最后一层softmax的输出
softmax_tensor = sess.graph.get_tensor_by_name('softmax:( )')
# 遍历被测试图像目录文件夹
for root,dirs,files in os.walk('image/'):
for file in files:
# 载入图片
image_data = tf.gfile.FastGFile(os.path.join(root,file), 'rb').read( )
# 通过TensorFlow的会话输入图像(jpg格式)数据
# 得到该图片对应每个物体类别的softmax概率分布向量
# 并赋值给predictions
predictions = sess.run(softmax_tensor,{'DecodeJpeg/contents:0': image_data})
# 把结果转为一维数据
predictions = np.squeeze(predictions)
# 对识别结果概率值进行排序,取出前5个概率最大的值(top-5)的索引值
# argsort( )返回的是数组值从小到大排列所对应的索引值,然后赋值给top_k
# top_k记录了5个最大概率物体的索引值
top_k = predictions.argsort( )[-5:][::-1]
# 创建类,将类别ID转换为人类易读的标签
node_lookup = NodeLookup( )
97 97
21Y3228.indd 97 2019/10/10 14:24:36