返回介绍

模型评估与特征图

发布于 2025-02-17 22:41:42 字数 8916 浏览 0 评论 0 收藏 0

输出各层特征图(通道合并)

选用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文