neural-network - 如何只训练神经网络的前部?
问题描述
我正在使用 pytorch 来训练部分网络。例如,我有一个模型结构
hidden1 = Layer1(x)
hidden2 = Layer2(hidden1)
out = Layer3(hidden2)
如果我只想训练 Layer3,我可以使用
hidden1 = Layer1(x)
hidden2 = Layer2(hidden1).detach()
out = Layer3(hidden2)
但是,这次我只想训练 Layer1。我怎样才能做到这一点?谢谢。
解决方案
detach
不会真正“冻结”您的图层。
如果您不想训练图层,则应requires_grad=False
改为使用。
例如:
hidden2.weight.requires_grad = False
hidden2.bias.requires_grad = False
然后解冻,你对requires_grad=True
.
推荐阅读
- nginx - 错误:Dns-probe-finished-nxdomain-google-cloud-platform 和 nginx
- excel - 类型函数 Type List, M if then 语句
- r - 如何组合矩阵中名称部分包含 R 中相同字符串的行?
- python - Openpyxl - AttributeError:'NoneType'对象没有属性'lower'
- ssl-certificate - 如何将 X.509 与 SslServerCredential 一起使用?
- azure-devops - 获取合并 PR 的源分支的名称
- python - 如何找到与所有列的给定条件集匹配的 DataFrame 行?
- php - 将 sql 查询转换为 elasticsearch 查询
- jquery - JQuery:如果元素不包含指定的单词,如何按类删除元素?
- python - AnalysisException:路径不存在:dbfs:/databricks/python/lib/python3.7/site-packages/sampleFolder/data;