machine-learning - pytorch 会在网络中使用 python 计算代码正确执行吗?
问题描述
以下面的假代码为例:
class():
def forward(input):
x = some_torch_layers(input)
x = some_torch_layers(x)
...
x = sum(x) # or numpy or other operations
x = some_torch_layers(x)
return x
pytorch 网络会运行良好吗?特别是,虽然sum(x)
在后向过程中表现良好。
解决方案
TL;DR
号
为了让 PyTorch “表现良好”,它需要通过网络传播梯度。PyTorch 不(也不能)知道如何区分任意 numpy 代码,它只能通过 PyTorch 张量操作传播梯度。
在您的示例中,梯度将在 numpy 处停止,sum
因此只会训练最顶层的火炬层(numpy 操作和 之间criterion
的层),其他层(输入和 numpy 操作之间的层)将具有零梯度,因此它们的参数将保持不变在整个培训过程中固定。
推荐阅读
- python - 合并具有相同索引的行
- python - 是否可以在 python 中使用硒打开 chrome 检查元素?
- python - 有没有办法使用在另一个 Python 文件中定义的变量?
- java - 之后,它应该显示计数和输入数字的总和。它出于某种原因添加了负数。0 结束
- c# - 如何确定是否安装了 .Net 5 运行时?
- azure - 在 powershell 中获取特定(Azure)命令详细信息
- node.js - 文档 AI 不支持的输入文件格式
- c++ - 会员和自由经营者的消歧规则
- jquery-chosen - 如何禁用删除选择中的选定选项?
- sql - 如何查询有多个联系电话的客户?SQL