两个问题:
https://docs.chainer.org/en/stable/tutorial/function.html写道:向后函数必须返回与forward方法的参数相同的形状?因为在某些情况下,输入数据和参数不需要是相同的形状或长度,如Convolutional2D,如何处理输入数据和参数有不同的形状。
因为在某些情况下,例如maxpooling,这里没有渐变。如何定义这样的chainer函数?
答案 0 :(得分:0)
backward
方法应该返回一个数组元组,元组的第i个数组应该与forward
方法的第i个参数具有相同的形状。当然,forward
的不同参数(以及backward
的不同返回值)可以有不同的形状。
当函数没有渐变w.r.t.一些输入(即,渐变始终为零),您可以返回None
作为元组的相应元素而不是零填充数组。顺便说一下,max pooling确实有渐变。