- 博客(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
原创 详解数据结构中的链表结构
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
原创 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
原创 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
原创 设置随机数种子 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
原创 文献总结: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关注的人