文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
模型评估与特征图
输出各层特征图(通道合并)
选用 test 数据集测试模型分类效果(test 数据没标签,所以只能人工判断了)
def reader_img(img_path):
img=cv2.imread(img_path)
img=cv2.resize(img,(244,244),interpolation=cv2.INTER_CUBIC)/255
img=np.transpose(img,(2,0,1))
img=np.reshape(img,(1,3,244,244))#预测图片要是 4 维的
return img.astype('float32')
def show_class(cat_face0):
if len(cat_face0)>0:
for imgp in cat_face0:
img=Image.open(imgp)
plt.imshow(img)
plt.show(img)
time.sleep(1)
else:
print("没有这个类别的")
with fluid.dygraph.guard():
param_dict,_=fluid.dygraph.load_dygraph(train_paramters['save_model_name'])
model=VGG16net()
model.load_dict(param_dict)
model.eval()
test_imgpath='cat_12_test'
dir_list=os.listdir(test_imgpath)
list_mask=np.arange(len(dir_list))
np.random.shuffle(list_mask)
cat_face0=[]
cat_face1=[]
cat_face2=[]
cat_face3=[]
cat_face4=[]
cat_face5=[]
cat_face6=[]
cat_face7=[]
cat_face8=[]
cat_face9=[]
cat_face10=[]
cat_face11=[]
#查看特征
for i in range(1):
is_display_feature=True
img_path=os.path.join(test_imgpath,dir_list[list_mask[i]])
img=Image.open(img_path)
plt.imshow(img)
plt.show(img)
time.sleep(1)
img=reader_img(img_path)
img=fluid.dygraph.to_variable(img)
out=model(img,is_display_feature)
#猫脸分类
for i in range(16):
is_display_feature=False
img_path=os.path.join(test_imgpath,dir_list[list_mask[i]])
img=reader_img(img_path)
img=fluid.dygraph.to_variable(img)
out=model(img,is_display_feature)
result=np.argmax(out.numpy())
if(result==0):
cat_face0.append(img_path)
if(result==1):
cat_face1.append(img_path)
if(result==2):
cat_face2.append(img_path)
if(result==3):
cat_face3.append(img_path)
if(result==4):
cat_face4.append(img_path)
if(result==5):
cat_face5.append(img_path)
if(result==6):
cat_face6.append(img_path)
if(result==7):
cat_face7.append(img_path)
if(result==8):
cat_face8.append(img_path)
if(result==9):
cat_face9.append(img_path)
if(result==10):
cat_face10.append(img_path)
if(result==11):
cat_face11.append(img_path)
print('猫类别:0')
show_class(cat_face0)
print('猫类别:1')
show_class(cat_face1)
print('猫类别:2')
show_class(cat_face2)
print('猫类别:3')
show_class(cat_face3)
print('猫类别:4')
show_class(cat_face4)
print('猫类别:5')
show_class(cat_face5)
print('猫类别:6')
show_class(cat_face6)
print('猫类别:7')
show_class(cat_face7)
print('猫类别:8')
show_class(cat_face8)
print('猫类别:9')
show_class(cat_face9)
print('猫类别:10')
show_class(cat_face10)
print('猫类别:11')
show_class(cat_face11)
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
猫类别:0
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
猫类别:1
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
猫类别:2
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
猫类别:3
<Figure size 432x288 with 1 Axes>
猫类别:4
没有这个类别的
猫类别:5
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
猫类别:6
没有这个类别的
猫类别:7
没有这个类别的
猫类别:8
没有这个类别的
猫类别:9
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
猫类别:10
<Figure size 432x288 with 1 Axes>
<Figure size 432x288 with 1 Axes>
猫类别:11
<Figure size 432x288 with 1 Axes>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论