CSNet-Pytorch icon indicating copy to clipboard operation
CSNet-Pytorch copied to clipboard

Reshape and Concat 层也需要反向传播计算梯度吗?

Open jirong0214 opened this issue 4 years ago • 4 comments

看到您的代码中的Reshape and Concat层也定义了backward()函数,这一层不是仅仅是维度的改变吗(将11024变为3232),请问这里需要计算梯度吗?望解答

jirong0214 avatar Nov 19 '20 03:11 jirong0214

backward里就是改变梯度的维度,读读代码就知道了。

WenxueCui avatar Nov 19 '20 03:11 WenxueCui

看到您的代码中的Reshape and Concat层也定义了backward()函数,这一层不是仅仅是维度的改变吗(将1_1024变为32_32),请问这里需要计算梯度吗?望解答

backward里就是改变梯度的维度,读读代码就知道了。

WenxueCui avatar Nov 19 '20 03:11 WenxueCui

好的 谢谢,我理解了。 另外,我使用train.py可以成功构建网络并训练,但是直接运行lib/network.py进行测试网络时,出现:RuntimeError: expected device cuda:0 and dtype Float but got device cpu and dtype Float的错误,错误指向了43行 output[:, :, i * Reshape_Concat_Adap.blocksize:(i + 1) * Reshape_Concat_Adap.blocksize, j * Reshape_Concat_Adap.blocksize:(j + 1) * Reshape_Concat_Adap.blocksize] += data_temp这里,但是我不知道如何修改才能解决这个问题,您能帮忙看一下吗?再次感谢!

jirong0214 avatar Nov 19 '20 04:11 jirong0214

好的 谢谢,我理解了。 另外,我使用train.py可以成功构建网络并训练,但是直接运行lib/network.py进行测试网络时,出现:RuntimeError: expected device cuda:0 and dtype Float but got device cpu and dtype Float的错误,错误指向了43行 output[:, :, i * Reshape_Concat_Adap.blocksize:(i + 1) * Reshape_Concat_Adap.blocksize, j * Reshape_Concat_Adap.blocksize:(j + 1) * Reshape_Concat_Adap.blocksize] += data_temp这里,但是我不知道如何修改才能解决这个问题,您能帮忙看一下吗?再次感谢!

根据错误提示应该是变量类型的问题,将CPU变量改为GPU就可以。我没法调试代码,所以具体代码怎么改我刚不了你。

WenxueCui avatar Nov 19 '20 05:11 WenxueCui