SSD-Pytorch训练自己的VOC数据集&遇到的问题及解决办法_no such file or directory ‘c users admin data(2)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!


165行的`images, targets = next(batch_iterator)`改成:



try:
images, targets = next(batch_iterator)
except StopIteration:
batch_iterator = iter(data_loader)
images, targets = next(batch_iterator)


### 预训练文件vgg16\_reducedfc.pth


开始训练时需要一个预训练文件 `vgg16_reducedfc.pth`



> 
> [链接]( )
> 
> 
> 


下载之后放在SSD项目下新建的weights文件夹下,然后就可以进行训练了。  
 注:训练中途遇到 loss=nan 的现象,将`train.py`中,`parser.add_argument('--lr', '--learning-rate', default=1e-3, type=float,`中的 `default=1e-3`改为`default=1e-4`。\*~~直到loss降低到1左右时即可~~ \*


### eval.py


`trained_model`评估的模型路径,`save_folder` 评估保存路径


### demo.py


新建`test_image`,在文件夹中放置几张待测图片(四处修改 20220106更新)



import os
import sys
import torch
from torch.autograd import Variable
import numpy as np
import cv2
from ssd import build_ssd
from data import VOC_CLASSES as labels
from matplotlib import pyplot as plt

------ 初始化 libiomp5md.dll 报错修改 ------

os.environ[“KMP_DUPLICATE_LIB_OK”] = “TRUE”

-----------------------------------------

module_path = os.path.abspath(os.path.join(‘…’))
if module_path not in sys.path:
sys.path.append(module_path)

if torch.cuda.is_available():
torch.set_default_tensor_type(‘torch.cuda.FloatTensor’)

net = build_ssd(‘test’, 300, 5) # 第一处修改:类别+1

将预训练的权重加载到数据集上

net.load_weights(‘weights/ssd300_VOC_1995.pth’) # 第二处修改:使用自己训练好的文件

加载多张图像

imgs = ‘test_image/’# 第三处修改:改成你自己的文件夹
img_list = os.listdir(imgs)
for img in img_list:
# 对输入图像进行预处理
current_img = imgs + img
image = cv2.imread(current_img)
rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

x = cv2.resize(image, (300, 300)).astype(np.float32)
x -= (104.0, 117.0, 123.0)
x = x.astype(np.float32)
x = x[:, :, ::-1].copy()
x = torch.from_numpy(x).permute(2, 0, 1)

# 把图片设为变量
xx = Variable(x.unsqueeze(0))
if torch.cuda.is_available():
    xx = xx.cuda()
y = net(xx)

# 解析 查看结果

top_k = 10

plt.figure(figsize=(6, 6))
colors = plt.cm.hsv(np.linspace(0, 1, 21)).tolis
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值