【Pytorch Tutorial】 两个标志:requires_grad 和 volatile
所有的Variable都有requires_grad 和 volatile这两个标志。
1. requires_grad
requires_grad = True,则说明需要求梯度;= False,则不需要求梯度。
利用requires_grad可以节省计算资源,提高效率,比如:当我们只优化新的fc层,那么只需要新的fc的梯度,中间层(fc之前的层)则不需要求梯度,那么就可以将中间层的requires_grad设置为False,系统将不会求中间层的梯度,节省了资源和时间,即“排除子图”。
2. volatile
volatile = True,则requires_grad = False;Vice Versa。
volatile应用于inference更合适,不会有缓存,占用资源最小。
注意:如果a是requires_grad=True,b是requires_grad=False,则c=a+b是requires_grad=True;同样的道理应用于volatile。