Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

issue in training #1

Open
manvirvirk opened this issue Apr 7, 2020 · 9 comments
Open

issue in training #1

manvirvirk opened this issue Apr 7, 2020 · 9 comments

Comments

@manvirvirk
Copy link

INFO: Using device cuda
INFO: Network:
NestedUNet model
3 input channels
3 output channels (classes)
Bilinear upscaling
INFO: Creating dataset with 20 examples
training stops after this. can anyone help

@zonasw
Copy link
Owner

zonasw commented Apr 12, 2020

Could u give me a more detailed description of the error

@manvirvirk
Copy link
Author

RuntimeError: CUDA error: device-side assert triggered

Traceback (most recent call last):
File "train.py", line 254, in
train_net(net=net, cfg=cfg)
File "train.py", line 142, in train_net
val_score = eval_net(net, val_loader, device, n_val, cfg)
File "train.py", line 210, in eval_net
sub_cross_entropy = F.cross_entropy(pred.unsqueeze(dim=0), true_mask.unsqueeze(dim=0).squeeze(1)).item()
RuntimeError: CUDA error: device-side assert triggered

@zonasw
Copy link
Owner

zonasw commented Apr 12, 2020

Your category number is 3, so your label map should only contain 0,1 and 2, but your label map contain something else. Check your label map.

@manvirvirk
Copy link
Author

could not get it? Please give more details. Thanks

@zonasw
Copy link
Owner

zonasw commented Apr 12, 2020

Check that your label map contains only 0,1, and 2. You can complete the check by running the following program:

import os
import os.path as osp
from tqdm import tqdm
import cv2
import numpy as np


num_classes = 3
mask_dir = "masks"
mask_names = os.listdir(mask_dir)

for mask_name in tqdm(mask_names):
    mask_path = osp.join(mask_dir, mask_name)
    mask = cv2.imread(mask_path, 0)
    h, w = mask.shape[:2]
    pix = []
    for i in range(0, num_classes):
        pix.append(len(np.where(mask==i)[0]))
    if sum(pix) != h*w:
        print("error: " + mask_name)

@sunchuanxi
Copy link

sunchuanxi commented May 20, 2020

when i set the model='Unet',cannot run,could you help to reply me ,thinks

follow is the erros:
Traceback (most recent call last):
File ".\train.py", line 255, in
train_net(net=net, cfg=cfg)
File ".\train.py", line 122, in train_net
loss += criterion(inference_mask, masks)
File "C:\Users\Administrator\anaconda3\lib\site-packages\torch\nn\modules\module.py", line 550, in call
result = self.forward(*input, **kwargs)
File "E:\深度学习\github\unet多分类\unet-nested-multiple-classification-master\losses.py", line 23, in forward
loss = L.lovasz_softmax(out, target)
File "E:\深度学习\github\unet多分类\unet-nested-multiple-classification-master\LovaszSoftmax\pytorch\lovasz_losses.py", line 167, in lovasz_softmax
loss = lovasz_softmax_flat(*flatten_probas(probas, labels, ignore), classes=classes)
File "E:\深度学习\github\unet多分类\unet-nested-multiple-classification-master\LovaszSoftmax\pytorch\lovasz_losses.py", line 190, in lovasz_softmax_flat
raise ValueError('Sigmoid output possible only with 1 class')
ValueError: Sigmoid output possible only with 1 class

@MEYE66
Copy link

MEYE66 commented Aug 8, 2020

不能把category number的类别定义为mask的分割种类呢,即不需要再把mask的颜色种类重新按0,1,2,3这样排序,保留原本的颜色?

@zonasw
Copy link
Owner

zonasw commented Aug 9, 2020

不能把category number的类别定义为mask的分割种类呢,即不需要再把mask的颜色种类重新按0,1,2,3这样排序,保留原本的颜色?

可以,但你需要对加载数据的代码做一些修改。

@wangfusheng-cqu
Copy link

这代码只能运用于图像尺寸一样的数据集吗???

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants