zmm9412 2021-12-01 11:28 采纳率: 100%
浏览 52
已结题

特征图可视化——模型加载

问题遇到的现象和发生背景

您好,在应用您的代码进行特征图可视化的时候,在加载模型之后报错,模型是自己构建的模型。

问题相关代码,请勿粘贴截图

def get_feature():
    # 输入数据
    root_path = 'M:\\uent_source\\unet-pytorch-main\\unet-pytorch-main\\unet-pytorch-main\\img\\'
    pic_dir = '2_15.jpg'
    rgb_path = root_path + pic_dir
    img_rgb = get_picture(rgb_path, transform)
    # 插入维度
    img_rgb = img_rgb.unsqueeze(0)
    img_rgb = img_rgb.to(device)
    # 插入维度
    # 加载模型,模型路径
    num_classes = 2
    pretrained = False
    model = Unet(num_classes=num_classes, pretrained=pretrained).train()
    # model_dict和model有什么格式上的区别
    model.load_state_dict(torch.load(
        'M:\\uent_source\\unet-pytorch-main\\unet-pytorch-main\\unet-pytorch-main\logs\ep100-loss0.041-val_loss0.072.pth'))
    model.to(device)
    exact_list = ["vgg1","vgg2","vgg3","vgg4","vgg5","up4_att","up4","up3_att","up3","up2_att","up2","up1_att","up1"]
    # myexactor = FeatureExtractor(model, exact_list)
    img1 = {'rgb': img_rgb}
    result, all_dict = model(img_rgb)
    outputs = []
运行结果及报错内容

img

我的解答思路和尝试过的方法

查看了加载的model字典的组成结构,问题出在result,all_dict=model(img_rgb)上,我不知道这里是不是指的是Unet模型返回的是两个参数,一个预测结果和一个字典格式,字典格式存放的又是什么呢?我是不是需要在网络结构类里返回这个字典呢?我的模型加载方式是否有问题呢?谢谢您的解答。

我想要达到的结果

能得到各个层的特征图的可视化。

  • 写回答

2条回答 默认 最新

  • 低吟浅笑 2021-12-01 15:41
    关注

    我们首先定位问题,应该是出现在model上面,你再检查下你模型的forward(self,xx,xx)到底是几个参数,还有forward返回的值是几个。
    result, all_dict = model(img_rgb)
    把你的模型看成一个黑盒子,这里传入的是一个值,希望得到2个值,我看报错应该是由于你的forward只返回了一个值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月2日
  • 已采纳回答 12月1日
  • 创建了问题 12月1日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来