python运行警告_ UserWarning: To copy construct from a tensor

发布时间:2024年01月18日

问题描述:

????????/data/Code/Incremental_learning/OCM-main/cifar.py:83: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).

问题分析

????????这个警告是 PyTorch 给出的建议,提示你在构造新的张量时最好使用 tensor.clone().detach() 或 tensor.clone().detach().requires_grad_(True),而不是 torch.tensor(sourceTensor)。??

具体说明,? 如果你使用了类似以下的代码:

new_tensor = torch.tensor(existing_tensor)

PyTorch 建议改为:

new_tensor = existing_tensor.clone().detach()

或者:

new_tensor = existing_tensor.clone().detach().requires_grad_(True)

??????? 因为,torch.tensor(sourceTensor) 创建了一个新的张量,该张量与原始张量 sourceTensor 共享相同的数据,但是没有共享梯度信息。在某些情况下,这可能会导致梯度计算中的问题,因此 PyTorch 建议使用 clone().detach() 或 clone().detach().requires_grad_(True) 以更明确和安全的方式创建新的张量,确保梯度信息也被正确处理。

????????可以根据实际情况选择其中一种方法,具体取决于你是否需要保留梯度信息。

????????如果不需要梯度信息,使用 clone().detach();

????????如果需要梯度信息,使用 clone().detach().requires_grad_(True)。

文章来源:https://blog.csdn.net/weixin_51659315/article/details/135558625
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。