前言
学习Pytorch代码时,遇到了nn.Sequential(*layers),其中layers为list类型
一、*变量
作用在形参上,代表这个位置接收任意多个非关键字参数,转化成元组
*作用在实参上,代表的是将输入迭代器拆成一个个元素。
二、nn.Sequential(*layers)
1.源码
![nn.Sequential的定义来看,输入要么是orderdict,要么是一系列的模型](https://img-blog.csdnimg.cn/a1bd7595e8c84030a1a03f34810bacf8.png#pic_center)
2.分析
nn.Sequential的定义来看,输入要么是orderdict,要么是一系列的模型
因为属于else类,由于*args转化为元组形式,list类型相当于1个元组元素,因此只能循环一次,加入的模型层却不止一个 ———-会报错
总结
遇到一个list传入,必须用*号进行转化