自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 3F10.5

假设有多个进程,每个进程都有一个局部的计算结果,我们希望将所有进程的结果。,用于在多个进程之间汇总数据。例如,可以对每个进程的结果进行。它在并行计算中非常常用,尤其适用于需要。等操作,并将结果广播给所有进程。,并将最终的结果广播给所有进程。,用于将多个进程的结果进行汇总并。

2024-10-29 21:19:51 295

原创 Fortran中的logical

在Fortran中,LOGICAL是用于表示布尔类型的数据类型,类似于其他编程语言中的布尔类型,表示逻辑真(True)或假(False)。Fortran 中的LOGICAL变量通常用来进行条件判断,例如IF语句和DO循环的条件控制。

2024-09-15 15:29:43 524 1

原创 哈希表的工作原理

哈希表是一种键值对(key-value)的存储方式。这里,学号将作为“键”,学生的姓名作为“值”。

2024-09-15 14:53:39 320

原创 详解数据结构中的链表结构

int data;} Node;// 创建新节点// 在链表头部插入节点// 遍历链表= NULL) {// 输出:1 -> 2 -> 3 -> NULLreturn 0;链表是数据结构中的重要部分,尤其在需要动态管理内存或频繁插入、删除操作的情况下,链表比数组具有更好的性能。链表的多种类型(如单向链表、双向链表、循环链表等)为不同的应用场景提供了灵活性,但也因为其随机访问能力较差、操作复杂性高等缺点,在某些场景下可能不如数组高效。

2024-09-14 21:53:33 1022

原创 详解Fortran中的intent

在 Fortran 中,intentintent(in):参数是输入参数,子程序或函数内部不能修改。:参数是输出参数,子程序或函数必须为其赋值。:参数既可以作为输入,也可以在子程序或函数中被修改为输出。通过使用intent属性,可以提高代码的安全性、可读性和维护性,并帮助编译器更好地进行错误检查和优化。

2024-09-14 10:53:24 1121

原创 Fortran中,先use module再implicit none

是 Fortran 中禁止隐式变量声明的语句,强制要求所有变量都必须显式声明。它可以避免由于未声明或拼写错误导致的隐式变量引发的潜在问题。在现代 Fortran 编程中,几乎所有程序和子程序中都应该使用,这是一个最佳实践。

2024-09-13 20:30:53 511

原创 Fortran:program 和 subroutine 的区别

program:程序的主入口,整个程序从这里开始执行,且只能有一个主程序。subroutine:模块化的代码段,可以接受参数,在主程序或其他子程序中被调用。它通过封装复杂的逻辑,使程序更加简洁和可维护。

2024-09-13 20:21:20 711

原创 real, dimension(3) :: rho1 和 real :: rho1(3) 的区别

语法风格使用dimension关键字定义数组。则直接在变量名后面加上维度,简洁直观。适用场景dimension方式更灵活,适合复杂的数组声明,尤其是在模块化代码中。直接声明数组维度更适合简单的一维或固定大小数组。

2024-09-13 19:52:32 184

原创 后缀规则和模式规则(.f.o and %.o:%.f)

这表示从所有的.f90文件生成相应的.o文件。这种写法使用了通配符来匹配文件的名称部分,而后缀(.f90和.o)定义了如何从.f90文件生成.o文件。

2024-09-13 17:46:59 748

原创 makefile(规则后面加分号)

在规则中使用分号;是为了在同一行内定义目标和命令。如果命令较少或者为了代码的简洁性,这种写法比较常见。不过,如果 Makefile 中命令较多、较复杂,还是推荐使用换行的形式来增强可读性。

2024-09-13 17:10:41 292

原创 .SUFFIXES:

是一种简便的机制,用来定义不同文件后缀的自动转换规则。通过.SUFFIXES,你可以灵活地控制哪些文件类型会自动进行转换,以及它们之间的转换规则。

2024-09-13 17:07:38 548

原创 fortran定义数组

静态数组:在编译时定义大小,适用于已知大小的数据。动态数组:在运行时分配内存,适用于大小不确定的数据。Fortran 数组支持多维声明,维度可以根据程序的需要进行扩展。

2024-09-12 17:28:37 369

原创 简单的 Fortran 程序示例

下面是一个简单的 Fortran 程序示例,用于计算一组数字的平均值。程序结构清晰,非常适合初学者快速了解 Fortran 的基本概念。

2024-09-12 16:19:29 556

原创 神经网络中权重矩阵的行和列分别代码的含义

权重矩阵的行:表示目标层(下一层或隐藏层)中的神经元。每一行包含从所有源层(前一层或输入层)神经元到该神经元的连接权重。权重矩阵的列:表示源层(前一层或输入层)中的神经元。每一列包含从该神经元到目标层(下一层或隐藏层)所有神经元的连接权重。通过这种方式,权重矩阵可以有效地描述神经网络中各层之间的连接和信息传递。

2024-07-03 23:15:10 488

原创 按位异或^

在 Python 中,a ^ b表示按位异或运算符。按位异或运算符对整数的每一位进行运算,如果对应位上的两个二进制数字不同,则结果为 1,否则为 0。

2024-07-02 16:12:33 417

原创 匿名函数return lambda t

在代码片段中,的含义是返回一个匿名函数(也叫 lambda 函数)。这个匿名函数接收一个参数t,并返回t * theta的值。

2024-07-02 16:09:28 336

原创 jnp.matmul和jnp.dot的区别?

jnp.matmul和jnp.dot都是用于矩阵乘法的函数,但它们在处理多维数组(即张量)时有不同的行为。jnp.dot。

2024-06-22 22:11:44 213

原创 jnp.diag

jnp.diag是一个非常有用的函数,可以根据需要创建对角矩阵或提取矩阵的对角线元素。在线性代数和矩阵计算中,这个功能常用于各种数值计算和矩阵操作中。

2024-06-22 22:02:06 754

原创 linalg

linalg是的缩写,在许多科学计算库中,linalg模块包含了用于执行线性代数操作的函数。这些操作包括矩阵乘法、矩阵分解、求解线性方程组、特征值和特征向量的计算等等。在不同的库中,linalg模块通常具有类似的功能。以下是一些常见的库和它们的linalg。

2024-06-22 21:51:21 385

原创 jnp.linalg.svd

是 JAX 库中的一个函数,用于计算矩阵的奇异值分解 (SVD)。SVD 将一个矩阵分解成三个矩阵的乘积,通常表示为AUSV。

2024-06-22 18:31:26 412

原创 利用pickle保存和加载对象

使用保存下来的文件可以使用打开和读取。以下是一个示例,展示了如何使用pickle。

2024-06-22 17:09:54 348

原创 print(“{}{}“.format())

format方法通过在字符串中插入值来实现字符串格式化。可以使用位置参数、命名参数和格式说明符来控制插入值的格式。Python 3.6 及更高版本中的 f-strings 提供了一种更简洁的格式化方法。

2024-06-21 22:59:20 305

原创 jnp.linalg.norm

是一个强大且灵活的工具,用于计算向量和矩阵的各种范数。通过指定不同的ord和axis参数,可以计算出不同类型和不同轴上的范数。

2024-06-21 22:23:58 551

原创 jax.experimental.optimizers.adam()

jax.experimental.optimizers.adam()返回三个参数,包含初始优化器状态、更新优化器状态、获取当前参数的。

2024-06-19 22:50:02 223

原创 value_and_grad

是 JAX 提供的一个便捷函数,它同时计算函数的值和其梯度。这在优化过程中非常有用,因为在一次函数调用中可以同时获得损失值和相应的梯度。以下是对 的详细解释::JAX 的一个高阶函数,它接受一个函数 并返回一个新函数,这个新函数在计算 函数值的同时也计算其梯度。:要计算值和梯度的目标函数。在这个例子中,它是我们之前定义的损失函数 。:指定对哪个参数计算梯度。在这个例子中, 是第一个参数(索引为0),因此我们对 计算梯度。:指示 函数是否返回除主要输出(损失值)之外的其他辅助输出(auxi

2024-06-19 22:34:37 341

原创 C++基础

上述代码用IntDoublePairVector代替原来的类型名.其中std::vector<std::pair<int,double>>是存储了整型和双精度浮点型组成的键值对的向量。

2024-06-19 18:45:00 434

原创 CFD笔记

定常流动:流体流动过程中各物理量均与时间无关;非定常流动:流体流动过程中某个或某些物理量与时间有关.

2024-06-19 18:44:15 1574

原创 linux笔记

ls > file_list.txt : 在此示例中,ls执行命令并将结果写入名为 的文件中。由于 的输出ls被重定向到文件,因此显示屏上不会出现任何结果.ls >> file_list.txt : 附加结果时,新结果将添加到文件末尾,从而使每次重复命令时文件变得更长。如果当我们尝试附加重定向输出时该文件不存在,则会创建该文件.

2024-06-19 18:43:36 1282

原创 python笔记

参数units,定义了输出空间的维度。如果上一层输出形状为(None, 32),通过Dense(units=16)层后,输出形状为(None, 16);如果输出形状为(None, 32, 32),通过Dense(units=16)层后,输出形状为(None, 32, 16)。第三个参数keep_dims:是否降维度,设置为True,输出的结果保持输入tensor的形状,设置为False,输出结果会降低维度;即np.hstack将两个形状为(3,1)的数组堆叠在一起,形成了一个(3,2)的新数组.

2024-06-19 18:43:03 1533

原创 jnp.einsum()

假设a是一个形状为(2,3,4)的三维张量. b是一个形状为(3,4)的二维张量. 那么**jnp.einsum(‘imn,mj->ijn’, a, b)**用来计算结果张量.表示b张量的两个维度3,4;由于前面有imn,mj,后面是ijn,没有了m,所以是对m求和,所以遍历维度m来计算输出张量的每个元素.从而输出张量的形状是(2,4,4).该命令用于在jax中进行张量运算.表示a张量的三个维度2,3,4;

2024-06-19 18:39:44 190

原创 jnp.full()

dtype: 数组的数据类型,默认为float32.fill_value:用于填充数组的值;shape: 数组的形状;

2024-06-19 10:40:06 365

原创 设置随机数种子 random.PRNGKey()

random.PRNGKey() 是jax中用于生成伪随机数生成器(PRNG)密钥的函数.:作为辅助部分,用于帮助确定生成的随机数序列,并确保生成的随机数在并行计算中是独立的。42是随机数生成器的种子,key是一个包含两个整数的jax数组,表示。:表示伪随机数生成器的主要部分,它用于确定随机数生成的当前状态。拆分出来的key1, key2是两个新的子密钥,不同于key.

2024-06-19 10:32:09 187

原创 jax.nn.initializers.glorot_normal()

是JAX库中的一个函数,用于初始化神经网络的参数。它使用Glorot正态分布初始化方法,也称为Xavier正态初始化。这种初始化方法旨在使每个神经元的输出具有相同的方差,以促进梯度在网络中流动时的稳定性。

2024-06-19 09:34:54 159

原创 pickle.dump()

pickle.dump()用于将python对象序列化并写入文件。序列化是指将对象转换为字节流,这样可以将对象保存到文件。**file: **文件对象,必须以二进制写模式(wb)打开;**obj: **需要序列化的python对象;

2024-06-18 21:10:43 316

原创 python编程笔记

if __name__ == '__main__'的意思是:当.py文件被直接运行时,if__name__ == '__main__'之下的代码块将被运行;通俗的理解__name__ == ‘__main__’:假如你叫小明.py,在朋友眼中,你是小明(__name__ == ‘小明’);:原因是解释器选择不对,pip3 install numpy是把numpy库安装在3.xxx的python解释器中,但是我是在3.9.6的解释器下运行的,所以找不到,此时需要把解释器换成3.11.9即可。

2024-06-18 20:37:42 1356

原创 Jax的方法

【代码】Jax的方法。

2024-06-18 20:13:04 425

原创 文献总结:ON THE TRAINING AND GENERALIZATION OF DEEP OPERATOR NETWORKS(关于深度算子网络的训练和泛化)

ON THE TRAINING AND GENERALIZATION OF DEEP OPERATOR NETWORKS(关于深度算子网络的训练和泛化)算子网络DeepONet由两个网络构成,即trunk网络和branch网络,通常是同时训练这两个网络,这相当于是在高维空间中解决复杂的优化问题,同时,非凸和非线性的性质也使得训练非常有挑战性。为了解决这个问题,本文提出了一种新的训练方法,即两步训练方法,先训练trunk网络,再训练branch网络,通过将复杂的训练任务分解为两个子任务,降低了复杂度。首先

2024-06-17 14:33:41 1125

原创 文献总结:ON THE TRAINING AND GENERALIZATION OF DEEP OPERATOR NETWORKS(关于深度算子网络的训练和泛化)

算子网络DeepONet由两个网络构成,即trunk网络和branch网络,通常是同时训练这两个网络,这相当于是在高维空间中解决复杂的优化问题,同时,非凸和非线性的性质也使得训练非常有挑战性。为了解决这个问题,本文提出了一种新的训练方法,即两步训练方法,先训练trunk网络,再训练branch网络,通过将复杂的训练任务分解为两个子任务,降低了复杂度。是在不引入branch网络的情况下,通过trunk网络和相应的系数一起找到基表示,第一步找到的系数对于branch网络来说,是目标值;如假设4.7定义的那样;

2024-06-12 20:50:55 1186

原创 文献总结:Learning nonlinear operators for identifying differential equations(DeepONet)

首先数据点是三元组(u,y,G(u)(y))因此特定的输入u可能出现在具有不同y值的多个数据点中,例如,大小为1w的数据集可能仅从100个输入u得到,每个数据集在100个不同的y位置处评估G(u)(y).从来在数据集中,对于每个u,就在G(u)的定义域中随机选择P个不同的y点,因此数据点的总数是P。也即,DeepONet时一种网络架构,没有定义其内部(主干和分支)的具体神经网络形式.接下去的几个例子都是选择最简单的全连接网络作为子网络架构,如果输入函数有一定的结构,那么可以用专门的层:例如,如果。

2024-04-24 20:20:53 574

原创 Weak adversarial networks for high-dimensional partial differential equations(WAN文献总结)

同时因为有限元、有限差分网格点的数量相当于问题的维数d呈指数级快速增加,所以发展基于神经网络的方法。PDE(3)的解就是(1)的弱解,(1)的解称为强解。我们还可以把WAN扩展到求解具有时间导数的PDE,也即IBVP.如下有两种方法:一种是在时间上采用半离散化,并对每个。那么总目标函数就是两个目标(6)和(7)的加权和,为此我们需要寻找一个鞍点来解决如下的这个极小极大问题.上述定理启发我们,为了得到(1)的弱解,我们可以寻找使得(5)达到最优值的最优解。对于给定的目标函数(8),网络训练的关键要素是。

2024-04-18 17:36:17 1200

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除