咨询电话: 020-88888888
在一个优化器中设置多个网络参数的写法!
发布于 2024-05-13 10:02 阅读()
框架:pytorch
在使用神经网络的时候有时候会将几个不同的神经网络组合,再采用梯度下降更新参数,那么在设置优化器的时候该如何将多个神经网络的参数进行融合呢?目前网络上的大部分信息都是采用Itertools.chain()将参数融合在一起:
链接
Python Itertools.chain()用法及代码示例
将所有可迭代对象组合在一起,并生成一个可迭代对象作为输出。它的输出不能直接使用,因此不能显式转换为可迭代对象。
parameters()函数返回的是一个Module.parameters的对象,实际上相当于参数的容器,而itertools.chain()是将多个模型的参数整合进一个新的容器内。
但是我遇到的一个问题是我的模型的个数不止一个,并且数量是不固定的,而上述方法中又需要把每个模型的参数一一放进itertools.chain()函数中,所以一开始把多个模型的参数统一放进一个列表中,然后把列表传入itertools.chain()函数,但是并不可以,原因是优化器需要传入的参数是一组tensor,但是采用上述方法传入的是Module.parameters的对象,所以此路不通。
考虑到list(net.parameters())实际上就是将Module.parameters解析成模型参数张量的列表,那么直接对参数进行组合:
新闻资讯
-
强化业绩补偿监管,支持环保企业 05-15
-
利率大幅单边上行可能性不大 05-15
-
商标注册的八大作用 05-11
-
10月19日湖人vs勇士数据统 07-01
-
加快经济结构优化升级 07-01
-
上海市卫健委:标准化是推动中医 07-01
-
ai画画生成器哪个好用?这几款 07-01
-
NBA2022-2023赛季常 07-01