Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Crayon鑫
Paddle
提交
64237c3f
P
Paddle
项目概览
Crayon鑫
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
64237c3f
编写于
4月 14, 2022
作者:
Z
zhangkaihuo
提交者:
GitHub
4月 14, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Supplementary documents (#41700)
上级
cbe7466f
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
68 addition
and
0 deletion
+68
-0
python/paddle/fluid/dygraph/varbase_patch_methods.py
python/paddle/fluid/dygraph/varbase_patch_methods.py
+68
-0
未找到文件。
python/paddle/fluid/dygraph/varbase_patch_methods.py
浏览文件 @
64237c3f
...
@@ -878,6 +878,28 @@ def monkey_patch_varbase():
...
@@ -878,6 +878,28 @@ def monkey_patch_varbase():
@
framework
.
dygraph_only
@
framework
.
dygraph_only
def
values
(
self
):
def
values
(
self
):
"""
**Notes**:
**This API is ONLY available in Dygraph mode**
Get the values of current SparseTensor(COO or CSR).
Returns:
Tensor: A DenseTensor
Examples:
.. code-block:: python
import paddle
from paddle.fluid.framework import _test_eager_guard
with _test_eager_guard():
indices = [[0, 0, 1, 2, 2], [1, 3, 2, 0, 1]]
values = [1, 2, 3, 4, 5]
dense_shape = [3, 4]
sparse_x = paddle.sparse.sparse_coo_tensor(paddle.to_tensor(indices, dtype='int32'), paddle.to_tensor(values, dtype='float32'), shape=dense_shape)
print(sparse_x.values())
#[1, 2, 3, 4, 5]
"""
if
self
.
is_sparse_coo
():
if
self
.
is_sparse_coo
():
return
_C_ops
.
final_state_sparse_coo_values
(
self
)
return
_C_ops
.
final_state_sparse_coo_values
(
self
)
elif
self
.
is_sparse_csr
():
elif
self
.
is_sparse_csr
():
...
@@ -888,6 +910,30 @@ def monkey_patch_varbase():
...
@@ -888,6 +910,30 @@ def monkey_patch_varbase():
@
framework
.
dygraph_only
@
framework
.
dygraph_only
def
to_dense
(
self
):
def
to_dense
(
self
):
"""
**Notes**:
**This API is ONLY available in Dygraph mode**
Convert the current SparseTensor(COO or CSR) to DenseTensor.
Returns:
Tensor: A DenseTensor
Examples:
.. code-block:: python
import paddle
from paddle.fluid.framework import _test_eager_guard
with _test_eager_guard():
indices = [[0, 0, 1, 2, 2], [1, 3, 2, 0, 1]]
values = [1, 2, 3, 4, 5]
dense_shape = [3, 4]
sparse_x = paddle.sparse.sparse_coo_tensor(paddle.to_tensor(indices, dtype='int64'), paddle.to_tensor(values, dtype='float32'), shape=dense_shape)
dense_x = sparse_x.to_dense()
#[[0., 1., 0., 2.],
# [0., 0., 3., 0.],
# [4., 5., 0., 0.]]
"""
if
self
.
is_sparse_coo
():
if
self
.
is_sparse_coo
():
return
_C_ops
.
final_state_sparse_coo_to_dense
(
self
)
return
_C_ops
.
final_state_sparse_coo_to_dense
(
self
)
elif
self
.
is_sparse_csr
():
elif
self
.
is_sparse_csr
():
...
@@ -897,6 +943,28 @@ def monkey_patch_varbase():
...
@@ -897,6 +943,28 @@ def monkey_patch_varbase():
@
framework
.
dygraph_only
@
framework
.
dygraph_only
def
to_sparse_coo
(
self
,
sparse_dim
):
def
to_sparse_coo
(
self
,
sparse_dim
):
"""
**Notes**:
**This API is ONLY available in Dygraph mode**
Convert the current DenseTensor to SparseTensor in COO format.
Returns:
Tensor: A SparseCooTensor
Examples:
.. code-block:: python
import paddle
from paddle.fluid.framework import _test_eager_guard
with _test_eager_guard():
dense_x = [[0, 1, 0, 2], [0, 0, 3, 4]]
dense_x = paddle.to_tensor(dense_x, dtype='float32')
sparse_x = dense_x.to_sparse_coo(sparse_dim=2)
#indices=[[0, 0, 1, 1],
# [1, 3, 2, 3]],
#values=[1., 2., 3., 4.]
"""
if
self
.
is_sparse_csr
():
if
self
.
is_sparse_csr
():
return
_C_ops
.
final_state_sparse_to_sparse_coo
(
self
,
sparse_dim
)
return
_C_ops
.
final_state_sparse_to_sparse_coo
(
self
,
sparse_dim
)
elif
self
.
is_sparse_coo
():
elif
self
.
is_sparse_coo
():
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录