加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

8个计算机视觉深度学习中常见的Bug

发布时间:2019-12-23 04:47:20 所属栏目:Unix 来源:站长网
导读:副标题#e# 给大家总结了8个计算机视觉深度学习中的常见bug,相信大家或多或少都遇到过,希望能帮助大家避免一些问题。 人是不完美的,我们经常在软件中犯错误。有时这些错误很容易发现:你的代码根本不能工作,你的应用程序崩溃等等。但是有些bug是隐藏的,

 a, b, c, d = i, min(h, i + self.size), j, min(w, j + self.size) 

 patch = x[a:b, c:d, :] 

 mask[a:b, c:d, :] += np.expand_dims(self.predictor(patch), -1) 

 weights[a:b, c:d, :] += 1 

 return mask / weights 

如果你仍然不知道问题出在哪里,请注意 weights[a:b,c:d,:]+=1这一行。

8. Imagenet归一化

当一个人需要进行转移学习时,用训练Imagenet时的方法将图像归一化通常是一个好主意。

让我们使用我们已经熟悉的albumentations库。

from albumentations import Normalize 

norm = Normalize() 

img = cv2.imread('img_small.jpg') 

mask = cv2.imread('mask_small.png', cv2.IMREAD_GRAYSCALE) 

mask = np.expand_dims(mask, -1) # shape (64, 64) -> shape (64, 64, 1) 

normed = norm(image=img, mask=mask) 

img, mask = [normed[x] for x in ['image', 'mask']] 

def img_to_batch(x): 

 x = np.transpose(x, (2, 0, 1)).astype('float32') 

 return torch.from_numpy(np.expand_dims(x, 0)) 

img, mask = map(img_to_batch, (img, mask)) 

criterion = F.binary_cross_entropy 

现在是时候训练一个网络并对单个图像进行过度拟合了——正如我所提到的,这是一种很好的调试技术:

model_a = UNet(3, 1)  

optimizer = torch.optim.Adam(model_a.parameters(), lr=1e-3) 

losses = [] 

for t in tqdm(range(20)): 

 loss = criterion(model_a(img), mask) 

 losses.append(loss.item())  

 optimizer.zero_grad() 

 loss.backward() 

 optimizer.step() 

  

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读