8000 数据集问题 · Issue #7 · xianlin7/SAMUS · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

数据集问题 #7

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

Open
HEL7777 opened this issue Dec 5, 2023 · 8 comments
Open

数据集问题 #7

HEL7777 opened this issue Dec 5, 2023 · 8 comments

Comments

@HEL7777
Copy link
HEL7777 commented Dec 5, 2023

请问CAMUS这个数据集的图片loss很快为0是怎么回事

@HEL7777
Copy link
Author
HEL7777 commented Dec 5, 2023

是不是camus数据集那里的格式处理不同

@HuashengPang
Copy link

请问使用CAMUS数据集时,为什么验证集上的val_dice一直不变??

@MacDunno
Copy link
MacDunno commented Mar 5, 2024

同问啊

@xianlin7
Copy link
Owner

请问使用CAMUS数据集时,为什么验证集上的val_dice一直不变??

CAMUS里面含有三个类别,类别和类别之间过度地带特征比较模糊,在确保预处理好的数据集没有问题的情况下,可以从以下两个个方面进行尝试:
(1) 单点提示,不同类别之间特征过于相似,同步训练时模型对提示感到蒙圈。可以加入多个点提示(5-20个)试试。(多个数据集进行训练时,数据量更充足,特征更鲁棒,就不存在这个问题)
(2)单独微调各个类别,检查模型是否正常训练。batch size=4或8, lr恒定为0.0001,检查点提示是否是256*256尺寸下的坐标点,检查点提示是否进入了提示编码器,检查模型是否对新引入的组件进行了解冻。

@songWell
Copy link

请问使用CAMUS数据集时,为什么验证集上的val_dice一直不变??

@HuashengPang 你好,我遇到相同的问题,请问您是如何解决的?我的输出seg都是0

@songWell
Copy link

请问使用CAMUS数据集时,为什么验证集上的val_dice一直不变??

CAMUS里面含有三个类别,类别和类别之间过度地带特征比较模糊,在确保预处理好的数据集没有问题的情况下,可以从以下两个个方面进行尝试: (1) 单点提示,不同类别之间特征过于相似,同步训练时模型对提示感到蒙圈。可以加入多个点提示(5-20个)试试。(多个数据集进行训练时,数据量更充足,特征更鲁棒,就不存在这个问题) (2)单独微调各个类别,检查模型是否正常训练。batch size=4或8, lr恒定为0.0001,检查点提示是否是256*256尺寸下的坐标点,检查点提示是否进入了提示编码器,检查模型是否对新引入的组件进行了解冻。

@xianlin7 您好,请问你们是如何预处理CAMUS的数据的,我这边是通过sitk resize到256x256的方式。
def resampleXYSize(sitkImage, new_xsize, new_ysize):
'''
newsitkImage = resampleSize(sitkImage, depth=DEPTH)
'''
#重采样函数
euler3d = sitk.Euler3DTransform()

xsize, ysize, zsize = sitkImage.GetSize()
xspacing, yspacing, zspacing = sitkImage.GetSpacing()
new_spacing_x = xspacing/(new_xsize/float(xsize))
new_spacing_y = yspacing/(new_ysize/float(ysize))

origin = sitkImage.GetOrigin()
direction = sitkImage.GetDirection()
#根据新的spacing 计算新的size
newsize = (new_xsize,new_ysize,zsize)
newspace = (new_spacing_x, new_spacing_y, zspacing)
sitkImage = sitk.Resample(sitkImage,newsize,euler3d,sitk.sitkNearestNeighbor,origin,newspace,direction)
return sitkImage

@songWell
Copy link

@xianlin7
你好,请问CAMUS的eval_model是camusmulti吗?是否应该改为mask_slice? 如果确实是使用camusmulti?请问evaluation.py的eval_camus_patient是什么作用?
predict = F.softmax(pred['masks'],
dim=1) pred = predict.detach().cpu().numpy() # (b, c, h, w)
seg = np.argmax(pred, axis=1)

@songWell
Copy link

@xianlin7 你好,请问CAMUS的eval_model是camusmulti吗?是否应该改为mask_slice? 如果确实是使用camusmulti?请问evaluation.py的eval_camus_patient是什么作用? predict = F.softmax(pred['masks'], dim=1) pred = predict.detach().cpu().numpy() # (b, c, h, w) seg = np.argmax(pred, axis=1)

哦哦,这个eval_camus_patient应该是用于多类别的吧。但目前SAMUS在camus上的输出是单层的,并且使用的CAMUS是单类别训练的,应该要换成其他eval_model吧。

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
0