Tao Wang
Tao Wang
In my case, Solved by add a soft link of libcudart.so. Be sure to find your libcudart.so location `sudo ln -s /opt/miniconda/lib/libcudart.so /usr/lib/x86_64-linux-gnu/libcudart.so`
> 我把batchsize都调的很小,还是说内存不够 export PLACEMENT=${PLACEMENT:-"cput"} ----> 这个参数是不是应该设置为cuda 你跑多大的gpt2,报错的
Me, too. But the examples/mnist.py can work correctly.
> > ### 需求描述 Feature Description > > 能否优化一下,特别是如果考虑3d wave equation时,会有时间变量 > > 原论文似乎没有考虑对于时间的处理,所以你知道时间变量该如何处理吗? 我看原文以及源代码里并没有单独考虑时间变量,是和空间变量一样,也是一个branch [SPINN_4d-L184](https://github.com/stnamjef/SPINN/blob/06031f8f0524608f427f1893879a9dd835b900cc/networks/physics_informed_neural_networks.py#L184C1-L214C1) 还有[klein_gordon3d](https://github.com/stnamjef/SPINN/blob/main/klein_gordon3d.py),[navier_stokes4d](https://github.com/stnamjef/SPINN/blob/main/navier_stokes4d.py),都有时间变量
> 你好,在 [#1075](https://github.com/PaddlePaddle/PaddleScience/pull/1075) 中已经进行了修改 另外不是很理解 `u__x__x = hvp_revrev(lambda x_: self.model.forward_tensor(x_), (xs[0],))` Helmholtz方程里的二阶导数为什么用hvp_revrev实现,SPINN里说Foward_AD能省,PaddleScience里仍然用的Backward_AD?另外我本地用通用的符号化u.diff(x,2)来表示方程,也没有明显看到计算更慢/更省?感觉主要节省是在数据输入只有O(Nd)。 另外SPINN文章里说不同维度的branch没有必要采样数一样,PaddleScience里对不同维度采样数量N不一样时报错?
如果一开始方程的定义是用的ppsci里带的方程,并没有自己去使用sympy定义输入输出变量,比如equation = {"laplace": ppsci.equation.Laplace(dim=2)}},边界条件有导数,比如du/dx, du/dy,那怎么做呢? 是再定义一遍 ``` x = sympy.symbols('x') y = sympy.symbols('y') u = sympy.Function('u')(y) bc_inlet = ppsci.constraint.BoundaryConstraint( {"du/dx": u.diff(x), "du/dy": u.diff(y), }, {"du/dx": 0,"du/dy": 0}, your_geometry_object, {**train_dataloader_cfg, "batch_size":...
> 如果一开始方程的定义是用的ppsci里带的方程,并没有自己去使用sympy定义输入输出变量,比如equation = {"laplace": ppsci.equation.Laplace(dim=2)}},边界条件有导数,比如du/dx, du/dy,那怎么做呢? > > 是再定义一遍 > > ``` > x = sympy.symbols('x') > y = sympy.symbols('y') > u = sympy.Function('u')(y) > bc_inlet = ppsci.constraint.BoundaryConstraint( > {"du/dx":...
方程自定义后,还是没法拿到输出变量的一阶导,除非自定义方程中直接把一阶导数也用`self.add_equation("du/dx", expr1_compute_func)`添加进去,但是这样还不如我就不用ppsci自带的那些方程了,直接全都在自己代码里用symbol写。 我看了nvidia modulus的案例的modulus-sym/examples/wave_equation/wave_1d.py,对于wave equation, du/dt(0)一阶导的初值边界条件会经常用,它提供了'u__t'这样的计算 https://github.com/NVIDIA/modulus-sym/blob/24813033e0bb3e68604e5e995bb364c62573ad3a/examples/wave_equation/wave_1d.py#L57C1-L65C6
@HydrogenSulfate 您看一下,wave equation ``` main.py ##main.py import hydra import numpy as np from omegaconf import DictConfig import paddle import ppsci from wave_equation import Wave c=1 # compute ground truth function...
感谢,能否加入官方案例中去,目前还没有wave equation的支持