如何将nural网络的输出转换为长类型,同时保持可训练性



pytorch神经网络的输出是float64类型的数据。这个变量必须用作像素偏移,因此我需要将其转换为长类型。

然而,我刚刚发现一个转换out=out.long((切换变量属性";。requires_grad";变为False。

我该如何将其转换为长期维护";。requires_grad";真的吗?

通常,在保持张量的梯度属性的同时,不能将张量转换为基于整数的类型,因为转换为整数是不可微的操作。因此,您基本上有两种选择:

  1. 如果数据只需要作为不需要保持梯度的推理操作的类型long,则可以在依次转换为long类型之前反向传播损失。您也可以复制或使用torch.detach()

  2. 更改模型的输入输出结构,使其不需要整数输出。一种方法可能是输出一个像素图,其中原始张量中的每个值对应一个值,您正试图对其进行索引。这将类似于输出用于分割的掩码的NN。

如果没有更多关于您试图实现的目标的详细信息,很难说您的最佳前进道路是什么。请添加更多代码,以便此操作的上下文可见。

相关内容

  • 没有找到相关文章

最新更新