首页 Paddle框架 帖子详情
Paddle 2.2 Layer 的 to 函数warnings
收藏
快速回复
Paddle框架 问答深度学习 548 5
Paddle 2.2 Layer 的 to 函数warnings
收藏
快速回复
Paddle框架 问答深度学习 548 5

Paddle 2.2 Layer 有个to 函数,还有例子。按例子测试,老出warnings. 希望有人给解答以下。

import paddle

linear = paddle.nn.Linear(3,4)

linear.to('gpu')   # 或这 'cpu'

运行出两条warnings:

ParamBase copy_to func

当模型较大时,就直接报很多warning后退出了。

0
收藏
回复
全部评论(5)
时间顺序
JavaRoom
#2 回复于2021-12

没有错啊。

C:\miniconda3\envs\p2\lib\site-packages\paddle\fluid\dygraph\varbase_patch_methods.py:392: UserWarning: 
Warning:
tensor.grad will return the tensor value of the gradient. This is an incompatible upgrade for tensor.grad API.  It's return type changes from numpy.ndarray in version 2.0 to paddle.Tensor in version 2.1.0.  If you want to get the numpy value of the gradient, you can use :code:`x.grad.numpy()` 
  warnings.warn(warning_msg)
in ParamBase copy_to func
in ParamBase copy_to func

Process finished with exit code 0
0
回复
JavaRoom
#3 回复于2021-12

可能模型较小

0
回复
DeepGeGe
#4 回复于2021-12

layer.to('gpu') 是指将将该层的参数放到什么设备上去计算,比如to('gpu')是放到GPU上去计算。

warning只是一个提示。

当模型很大时候,放入参数过大,很有可能就爆显存了。就会退出。

0
回复
顶顶顶过3
#5 回复于2021-12
layer.to('gpu') 是指将将该层的参数放到什么设备上去计算,比如to('gpu')是放到GPU上去计算。 warning只是一个提示。 当模型很大时候,放入参数过大,很有可能就爆显存了。就会退出。
展开

谢谢!可惜实际情况不是这样。如果不用layer.to,直接在GPU上建模,一切正常。另外,如果一切正常,paddle没事提示那么多warning干啥。另外请教一下,如何很方便地把模型在CPU内存与GPU内存之间非常方便地来回转换?就像pytorch,用to就可以了。

0
回复
DeepGeGe
#6 回复于2021-12
谢谢!可惜实际情况不是这样。如果不用layer.to,直接在GPU上建模,一切正常。另外,如果一切正常,paddle没事提示那么多warning干啥。另外请教一下,如何很方便地把模型在CPU内存与GPU内存之间非常方便地来回转换?就像pytorch,用to就可以了。
展开

使用这个方法:paddle.device.set_device("cpu")

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户