FCN代码测试问题

在使用Caffe运行FCN时遇到了几个问题,包括:IndexError、模型权重路径错误、参数形状不匹配、无法写入快照以及Python版本冲突。针对这些问题,提供了相应的解决方案,如选择正确的GPU、修正文件路径、下载正确模型、创建快照目录和选择匹配Python版本。此外,解决solve.py中scoring部分和prototxt文件的路径与文件名问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这篇文章的基础下配置caffe运行FCN:点击打开链接

 

 

 

这篇讲的挺细,但是voc-fac32s训练存在几个小问题,如下:

问题1:

Traceback (most recent call last):
  File "solve.py", line 19, in <module>
    caffe.set_device(int(sys.argv[1]))

IndexError: list index out of range

把对应的两行注释掉,或者利用nvidia-smi看看存在那个gpu就选那个gpu

问题2:

solve.py文件中还应该做如下改动:

vgg_weights = '../ilsvrc-nets/vgg16-fcn.caffemodel'  
vgg_proto = '../ilsvrc-nets/VGG_ILSVRC_16_layers_deploy.prototxt'  

#weights = '../ilsvrc-nets/vgg16-fcn.caffemodel'  

对应的文件下载好放在对应的路径,参考文献中vgg16-fcn.caffemodel是错误的,正确的模型如下点击打开链接(同时这也是造成下一个问题的原因)

问题3:

Cannot copy param 0 weights from layer 'fc6'; shape mismatch.  Source param shape is 4096 512 7

### FCN 测试代码 PyTorch 示例 为了测试已训练好的 FCN 模型,在 PyTorch 中可以按照如下方式编写测试代码: ```python import torch from torchvision import transforms from PIL import Image import numpy as np import matplotlib.pyplot as plt # 假设已经定义好了FCN类以及加载预训练权重的方法 load_pretrained_weights() fcn_model = FCN(base, head) # 初始化模型实例 fcn_model.load_state_dict(torch.load('path_to_your_trained_fcn.pth')) # 加载预训练参数 fcn_model.eval() # 设置为评估模式 def predict(image_path): preprocess = transforms.Compose([ transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), ]) input_image = Image.open(image_path).convert("RGB") # 打开并转换成 RGB 图像 input_tensor = preprocess(input_image) input_batch = input_tensor.unsqueeze(0) # 创建批次维度 with torch.no_grad(): # 关闭梯度计算以节省内存 output = fcn_model(input_batch)['out'][0] # 获取输出 output_predictions = output.argmax(0) # 对每个像素取最大值作为类别标签 # 显示原图与预测结果对比 fig, ax = plt.subplots(1, 2) ax[0].imshow(input_image); ax[0].set_title('Input image') ax[1].imshow(output_predictions.byte().cpu()); ax[1].set_title('Predicted segmentation') predict('your_test_image.jpg') # 调用函数传入待测图片路径 ``` 上述代码展示了如何构建一个简单的测试流程来应用预先训练过的 FCN 进行图像分割任务。这里假设 `base` 和 `head` 已经被正确定义,并且有一个保存有训练好权重文件 `'path_to_your_trained_fcn.pth'` 可供调用[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值