justchenhao / STANet

official implementation of the spatial-temporal attention neural network (STANet) for remote sensing image change detection
BSD 2-Clause "Simplified" License
419 stars 110 forks source link

请问您的gpu是多大的,总是会爆下面的错误 #50

Open xixi103 opened 3 years ago

xixi103 commented 3 years ago

Traceback (most recent call last): File "train.py", line 142, in <module> model.optimize_parameters() # calculate loss functions, get gradients, update network weights File "/home/user/zxm/stanet/STANet-master1/STANet-master/models/CDFA_model.py", line 122, in optimize_parameters self.backward() # calculate graidents for G File "/home/user/zxm/stanet/STANet-master1/STANet-master/models/CDFA_model.py", line 108, in backward self.loss.backward() File "/home/user/anaconda3/lib/python3.6/site-packages/torch/tensor.py", line 118, in backward torch.autograd.backward(self, gradient, retain_graph, create_graph) File "/home/user/anaconda3/lib/python3.6/site-packages/torch/autograd/__init__.py", line 93, in backward allow_unreachable=True) # allow_unreachable flag RuntimeError: CUDA out of memory. Tried to allocate 2.00 GiB (GPU 3; 7.43 GiB total capacity; 5.01 GiB already allocated; 1.92 GiB free; 12.36 MiB cached)

zhijiejia commented 3 years ago

可是设置 ds参数,在命令行中添加 --ds 4 或者 -ds 8 试试

ddmice commented 3 years ago

您的问题解决了吗?是怎么解决的呢? 我的也是:RuntimeError: CUDA out of memory. Tried to allocate 2.00 GiB (GPU 0; 6.00 GiB total capacity; 2.98 GiB already allocated; 1.78 GiB free; 2.89 MiB cached) 

zhijiejia commented 3 years ago

我估计是,在计算相似性矩阵的时候,输入的特征图尺寸过大,占用了比较多的显存,从而导致显存不足, 可以通过设置添加 ds参数,来讲特征图进行一次下采样,代码里默认ds=1, 可以试试添加 ' --ds 4 或者 --ds 8 '

ddmice commented 3 years ago

您好,我有些进展了,非常感谢您,我是变化检测方向的新学生。大四做毕设用到了这个,非常感谢。以后可以多多关注您的github学习;

zhijiejia commented 3 years ago

我也是大四学生,毕设变化检测。。。 嘿嘿嘿

tan90du-sx commented 3 years ago

您好,ds设置以后精度下降的很厉害,您有这个问题吗

tan90du-sx commented 3 years ago

但是精度会下降,我下来精度还不如base

sungh66 commented 3 years ago

我也是这个问题,PAM模型反而没有BASE好

------------------ 原始邮件 ------------------ 发件人: "justchenhao/STANet" @.>; 发送时间: 2021年3月31日(星期三) 晚上6:22 @.>; @.**@.>; 主题: Re: [justchenhao/STANet] 请问您的gpu是多大的,总是会爆下面的错误 (#50)

但是精度会下降,我下来精度还不如base

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

zjbit commented 3 years ago

ds=2在1080ti可以跑,1就不行,是不是得多卡模型并行呢?好像ds=2无法达到论文中的精度

tan90du-sx commented 3 years ago

我的情况也是如此,多卡并没有这个条件去做。您可以试试

孙雪 @.***

---原始邮件--- 发件人: @.> 发送时间: 2021年4月12日(周一) 上午10:07 收件人: @.>; 抄送: @.**@.>; 主题: Re: [justchenhao/STANet] 请问您的gpu是多大的,总是会爆下面的错误 (#50)

ds=2在1080ti可以跑,1就不行,是不是得多卡模型并行呢?好像ds=2无法达到论文中的精度

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

zjbit commented 3 years ago

我后来batch改成4,可以姿训练了,按照ds=1,效果就好很多了

nmxian commented 3 years ago

你们跑的时候是先裁剪成256,还是在程序里随机选256的切片?为什么我跑base model的时候直接按GitHub里的命令跑,达不到论文精度,只有0.76,没有达到0.83

nmxian commented 3 years ago

我后来batch改成4,可以姿训练了,按照ds=1,效果就好很多了

你达到了论文精度了吗?

sungh66 commented 3 years ago

我后来batch改成4,可以姿训练了,按照ds=1,效果就好很多了

你达到了论文精度了吗?

只有0.739,你呢

大家可以crop_size和load_size都改成128,或者对图片切割数据增强,ds=1,batchasize=8,基本能复现论文精度,大概BAM到0.84,PAM到0.85

nmxian commented 3 years ago

我后来batch改成4,可以姿训练了,按照ds=1,效果就好很多了

你达到了论文精度了吗?

只有0.739,你呢

事先裁成256的,value做测试集,base model bz=8,有0.810; bam: ds=2,,bz=4,也只有0.812

nmxian commented 3 years ago

我后来batch改成4,可以姿训练了,按照ds=1,效果就好很多了

你达到了论文精度了吗?

只有0.739,你呢

大家可以crop_size和load_size都改成128,或者对图片切割数据增强,ds=1,batchasize=8,基本能复现论文精度,大概BAM到0.84,PAM到0.85

你是训练前把图片事先裁成128吗?还是按官网在程序中随机裁剪固定大小128?

sungh66 commented 3 years ago

我是先离线裁剪256x256(overlap=0),然后在线随机裁剪128,不然会爆显存

------------------ 原始邮件 ------------------ 发件人: "justchenhao/STANet" @.>; 发送时间: 2021年4月23日(星期五) 下午4:21 @.>; @.**@.>; 主题: Re: [justchenhao/STANet] 请问您的gpu是多大的,总是会爆下面的错误 (#50)

我后来batch改成4,可以姿训练了,按照ds=1,效果就好很多了

你达到了论文精度了吗?

只有0.739,你呢

大家可以crop_size和load_size都改成128,或者对图片切割数据增强,ds=1,batchasize=8,基本能复现论文精度,大概BAM到0.84,PAM到0.85

你是训练前把图片事先裁成128吗?还是按官网在程序中随机裁剪固定大小128?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

nmxian commented 3 years ago

我是先离线裁剪256x256(overlap=0),然后在线随机裁剪128,不然会爆显存 ------------------ 原始邮件 ------------------ 发件人: "justchenhao/STANet" @.>; 发送时间: 2021年4月23日(星期五) 下午4:21 @.>; @.**@.>; 主题: Re: [justchenhao/STANet] 请问您的gpu是多大的,总是会爆下面的错误 (#50) 我后来batch改成4,可以姿训练了,按照ds=1,效果就好很多了 你达到了论文精度了吗? 只有0.739,你呢 大家可以crop_size和load_size都改成128,或者对图片切割数据增强,ds=1,batchasize=8,基本能复现论文精度,大概BAM到0.84,PAM到0.85 你是训练前把图片事先裁成128吗?还是按官网在程序中随机裁剪固定大小128? — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

我去试下,谢谢!

sungh66 commented 3 years ago

请问loss.py里面label是1和-1,而不是论文里提到的1,0,这是为什么呢

对于loss的计算是一样的,代码中如果no-change就只剩loss1,如果change就只剩loss2,平衡正负样本比例,和论文中起到同样的效果

gcg0210 commented 3 years ago

你们的pytorch是哪个版本的

yiyi-today commented 3 years ago

我是先离线裁剪256x256(overlap=0),然后在线随机裁剪128,不然会爆显存 ------------------ 原始邮件 ------------------ 发件人: "justchenhao/STANet" @.>; 发送时间: 2021年4月23日(星期五) 下午4:21 @.>; @.**@.>; 主题: Re: [justchenhao/STANet] 请问您的gpu是多大的,总是会爆下面的错误 (#50) 我后来batch改成4,可以姿训练了,按照ds=1,效果就好很多了 你达到了论文精度了吗? 只有0.739,你呢 大家可以crop_size和load_size都改成128,或者对图片切割数据增强,ds=1,batchasize=8,基本能复现论文精度,大概BAM到0.84,PAM到0.85 你是训练前把图片事先裁成128吗?还是按官网在程序中随机裁剪固定大小128? — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

你好,请问事前裁剪你是怎么实现的啊。我看论文里是将10241024的影像裁剪成16个256256大小的影像。我不知道应该怎么裁剪。

weizhiliang0520 commented 2 years ago

我估计是,在计算相似性矩阵的时候,输入的特征图尺寸过大,占用了比较多的显存,从而导致显存不足, 可以通过设置添加 ds参数,来讲特征图进行一次下采样,代码里默认ds=1, 可以试试添加 ' --ds 4 或者 --ds 8 '

你好,我想问一下,跑代码的时候,baseline可以跑,等跑BAM时候,就出现问题,和你的一样。当我设置batch size 和ds很小的时候,但是我能够跑第一轮,后面不是每train完一轮以后,代码自动val 验证嘛,我的就卡了,out of memory 256G。