Skip to content

Conversation

@co63oc
Copy link
Contributor

@co63oc co63oc commented Oct 29, 2024

PR types

Others

PR changes

Others

Describe

Paddle 适配 deepali
RFC PaddlePaddle/community#978

torch中单测为89个,修改后paddle单测数量85个,3个单测使用torch_function paddle没有对应实现, 1个单测使用 torchinfo取消测试
torch单测运行
image

paddle单测运行
image

docs目录没有修改,examples中示例没有说明中数据集没有测试

安装

# paddlepaddle develop
python -m pip install --pre paddlepaddle-gpu -i https://www.paddlepaddle.org.cn/packages/nightly/cu118/

# setup config file is pyproject.toml
pip install .

# test
pytest tests/

@paddle-bot
Copy link

paddle-bot bot commented Oct 29, 2024

Thanks for your contribution!

@luotao1 luotao1 added the HappyOpenSource Pro 进阶版快乐开源活动,更具挑战性的任务 label Oct 29, 2024
@luotao1 luotao1 changed the title Paddle 适配 deepali 【Paddle Toolkit Development Competition No.6】Paddle 适配 deepali Oct 29, 2024
Copy link
Collaborator

@HydrogenSulfate HydrogenSulfate left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

感谢提交PR,代码和docstring中有少量pytorch的部分,还请更改成paddle,有不支持的实现可以raise NotImplementedError即可
image
image

@co63oc
Copy link
Contributor Author

co63oc commented Oct 29, 2024

感谢提交PR,代码和docstring中有少量pytorch的部分,还请更改成paddle,有不支持的实现可以raise NotImplementedError即可
已修改

@HydrogenSulfate
Copy link
Collaborator

感谢提交PR,代码和docstring中有少量pytorch的部分,还请更改成paddle,有不支持的实现可以raise NotImplementedError即可
已修改

好的辛苦,我们内部先测试一下

@HydrogenSulfate
Copy link
Collaborator

HydrogenSulfate commented Oct 30, 2024

image
paddle目前的规则是不会在整型和浮点数之间做类型提升,所以还麻烦在所有相关的代码中,把所有可能是int64类型的Tensor手动astype到另一个对象的dtype上
image
https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/guides/advanced/auto_type_promotion_cn.html#sifeijiangyinshileixingtishengdeshiyongfanwei

@co63oc
Copy link
Contributor Author

co63oc commented Oct 30, 2024

paddle目前的规则是不会在整型和浮点数之间做类型提升,所以还麻烦在所有相关的代码中,把所有可能是int64类型的Tensor手动astype到另一个对象的dtype上

测试develop版本可以,只是提示信息

import paddle
spacing=paddle.ones([1,2]).astype(paddle.float32)
ret = spacing.less_equal(y=paddle.to_tensor(0)).astype("bool").any()
print(ret)

image

文档说明是到2.6版本
image

develop版本安装是用的命令

python -m pip install --pre paddlepaddle-gpu -i https://www.paddlepaddle.org.cn/packages/nightly/cu118/

其他地方有碰到类似问题,可能文档没有更新,测试有部分支持,也有部分不支持,但是不确定是哪部分不支持,需要按测试结果修改

@HydrogenSulfate
Copy link
Collaborator

HydrogenSulfate commented Oct 30, 2024

paddle目前的规则是不会在整型和浮点数之间做类型提升,所以还麻烦在所有相关的代码中,把所有可能是int64类型的Tensor手动astype到另一个对象的dtype上

测试develop版本可以,只是提示信息

import paddle
spacing=paddle.ones([1,2]).astype(paddle.float32)
ret = spacing.less_equal(y=paddle.to_tensor(0)).astype("bool").any()
print(ret)

image

文档说明是到2.6版本 image

develop版本安装是用的命令

python -m pip install --pre paddlepaddle-gpu -i https://www.paddlepaddle.org.cn/packages/nightly/cu118/

其他地方有碰到类似问题,可能文档没有更新,测试有部分支持,也有部分不支持,但是不确定是哪部分不支持,需要按测试结果修改

好的,在develop上测试确实已经没有类型的问题,但是还有两个data_ptr的问题可以看一下:
image
image

Copy link
Contributor

@lijialin03 lijialin03 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

辛苦提交代码,我们在运行单测的时候遇到一点奇怪的报错,麻烦可以提供一下单测运行时的软件包版本吗,pip list之类的,谢谢

@co63oc
Copy link
Contributor Author

co63oc commented Oct 30, 2024

辛苦提交代码,我们在运行单测的时候遇到一点奇怪的报错,麻烦可以提供一下单测运行时的软件包版本吗,pip list之类的,谢谢
pip list
pip.txt

@co63oc
Copy link
Contributor Author

co63oc commented Oct 30, 2024

好的,在develop上测试确实已经没有类型的问题,但是还有两个data_ptr的问题可以看一下

本地测试没有错误,这里的逻辑是用cpu分配tensor,然后使用不同的cuda设备,验证是否新建数据,
已修改增加tensor.clone()创建不同tensor

Copy link
Contributor

@lijialin03 lijialin03 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

又看了一下发现代码中没有删除之前使用simpleitk来write的代码,因此稍作修改(下面以***** 开头的3个comment,提交代码时麻烦将老版的write和import部分代码保留但注释掉)后可以继续运行测试代码,发现还有一些问题,辛苦再修改一下~
在将问题全部修改后,简单看了一下在测试代码上运行的结果与测试代码本身的结果的均值和方法对比如下图,可以认为修改后的代码运行无误
image

from paddle import Tensor

from .tensor import DataTensor

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

***** import处添加(需要安装SimpleITK包):

try:
    import SimpleITK as sitk
    from ..utils.simpleitk.imageio import read_image
    from ..utils.simpleitk.paddle import image_from_tensor
    from ..utils.simpleitk.paddle import tensor_from_image
except ImportError:
    sitk = None
from deepali.core.pathlib import unlink_or_mkdir

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

测试read_image导入是
from deepali.utils.imageio import read_image

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

好的,打log看这两个API在测试这个案例上好像结果没区别,不过deepali.utils.imageio里这个确实全很多,就这个吧,谢谢

@co63oc
Copy link
Contributor Author

co63oc commented Nov 1, 2024

又看了一下发现代码中没有删除之前使用simpleitk来write的代码,因此稍作修改(下面以***** 开头的3个comment,提交代码时麻烦将老版的write和import部分代码保留但注释掉)后可以继续运行测试代码,发现还有一些问题,辛苦再修改一下~ 在将问题全部修改后,简单看了一下在测试代码上运行的结果与测试代码本身的结果的均值和方法对比如下图,可以认为修改后的代码运行无误

已修改,没有提示错误,但是也没有日志输出,不确定什么问题

@lijialin03
Copy link
Contributor

又看了一下发现代码中没有删除之前使用simpleitk来write的代码,因此稍作修改(下面以***** 开头的3个comment,提交代码时麻烦将老版的write和import部分代码保留但注释掉)后可以继续运行测试代码,发现还有一些问题,辛苦再修改一下~ 在将问题全部修改后,简单看了一下在测试代码上运行的结果与测试代码本身的结果的均值和方法对比如下图,可以认为修改后的代码运行无误

已修改,没有提示错误,但是也没有日志输出,不确定什么问题

确实没有log,测试用的PR本身输出的是文件,log是手动添加的打印: ),测试过最新代码,结果同上面log截图

HydrogenSulfate
HydrogenSulfate previously approved these changes Nov 4, 2024
Copy link
Collaborator

@HydrogenSulfate HydrogenSulfate left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM,这个仓库能暂时先放到https://atomgit.com/上吗?后续我们看下github上放到哪里比较合适

@luotao1
Copy link
Collaborator

luotao1 commented Nov 4, 2024

这个仓库能暂时先放到https://atomgit.com/上吗

@HydrogenSulfate 没地方放的话,可以考虑先放这里:https://github.com/PfCCLab

@co63oc
Copy link
Contributor Author

co63oc commented Nov 4, 2024

@co63oc
Copy link
Contributor Author

co63oc commented Nov 4, 2024

已放到 https://github.com/PFCCLab/deepali/ ,仓库为私有仓库,当前PR是关闭吗

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contributor HappyOpenSource Pro 进阶版快乐开源活动,更具挑战性的任务

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants