- 博客(36)
- 收藏
- 关注
原创 神经网络中权重矩阵的行和列分别代码的含义
权重矩阵的行:表示目标层(下一层或隐藏层)中的神经元。每一行包含从所有源层(前一层或输入层)神经元到该神经元的连接权重。权重矩阵的列:表示源层(前一层或输入层)中的神经元。每一列包含从该神经元到目标层(下一层或隐藏层)所有神经元的连接权重。通过这种方式,权重矩阵可以有效地描述神经网络中各层之间的连接和信息传递。
2024-07-03 23:15:10
369
原创 按位异或^
在 Python 中,a ^ b表示按位异或运算符。按位异或运算符对整数的每一位进行运算,如果对应位上的两个二进制数字不同,则结果为 1,否则为 0。
2024-07-02 16:12:33
377
原创 匿名函数return lambda t
在代码片段中,的含义是返回一个匿名函数(也叫 lambda 函数)。这个匿名函数接收一个参数t,并返回t * theta的值。
2024-07-02 16:09:28
294
原创 jnp.matmul和jnp.dot的区别?
jnp.matmul和jnp.dot都是用于矩阵乘法的函数,但它们在处理多维数组(即张量)时有不同的行为。jnp.dot。
2024-06-22 22:11:44
166
原创 jnp.diag
jnp.diag是一个非常有用的函数,可以根据需要创建对角矩阵或提取矩阵的对角线元素。在线性代数和矩阵计算中,这个功能常用于各种数值计算和矩阵操作中。
2024-06-22 22:02:06
703
原创 linalg
linalg是的缩写,在许多科学计算库中,linalg模块包含了用于执行线性代数操作的函数。这些操作包括矩阵乘法、矩阵分解、求解线性方程组、特征值和特征向量的计算等等。在不同的库中,linalg模块通常具有类似的功能。以下是一些常见的库和它们的linalg。
2024-06-22 21:51:21
286
原创 jnp.linalg.svd
是 JAX 库中的一个函数,用于计算矩阵的奇异值分解 (SVD)。SVD 将一个矩阵分解成三个矩阵的乘积,通常表示为AUSV。
2024-06-22 18:31:26
367
原创 print(“{}{}“.format())
format方法通过在字符串中插入值来实现字符串格式化。可以使用位置参数、命名参数和格式说明符来控制插入值的格式。Python 3.6 及更高版本中的 f-strings 提供了一种更简洁的格式化方法。
2024-06-21 22:59:20
177
原创 jnp.linalg.norm
是一个强大且灵活的工具,用于计算向量和矩阵的各种范数。通过指定不同的ord和axis参数,可以计算出不同类型和不同轴上的范数。
2024-06-21 22:23:58
497
原创 jax.experimental.optimizers.adam()
jax.experimental.optimizers.adam()返回三个参数,包含初始优化器状态、更新优化器状态、获取当前参数的。
2024-06-19 22:50:02
188
原创 value_and_grad
是 JAX 提供的一个便捷函数,它同时计算函数的值和其梯度。这在优化过程中非常有用,因为在一次函数调用中可以同时获得损失值和相应的梯度。以下是对 的详细解释::JAX 的一个高阶函数,它接受一个函数 并返回一个新函数,这个新函数在计算 函数值的同时也计算其梯度。:要计算值和梯度的目标函数。在这个例子中,它是我们之前定义的损失函数 。:指定对哪个参数计算梯度。在这个例子中, 是第一个参数(索引为0),因此我们对 计算梯度。:指示 函数是否返回除主要输出(损失值)之外的其他辅助输出(auxi
2024-06-19 22:34:37
266
原创 C++基础
上述代码用IntDoublePairVector代替原来的类型名.其中std::vector<std::pair<int,double>>是存储了整型和双精度浮点型组成的键值对的向量。
2024-06-19 18:45:00
409
原创 linux笔记
ls > file_list.txt : 在此示例中,ls执行命令并将结果写入名为 的文件中。由于 的输出ls被重定向到文件,因此显示屏上不会出现任何结果.ls >> file_list.txt : 附加结果时,新结果将添加到文件末尾,从而使每次重复命令时文件变得更长。如果当我们尝试附加重定向输出时该文件不存在,则会创建该文件.
2024-06-19 18:43:36
1240
原创 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
1483
原创 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
147
原创 设置随机数种子 random.PRNGKey()
random.PRNGKey() 是jax中用于生成伪随机数生成器(PRNG)密钥的函数.:作为辅助部分,用于帮助确定生成的随机数序列,并确保生成的随机数在并行计算中是独立的。42是随机数生成器的种子,key是一个包含两个整数的jax数组,表示。:表示伪随机数生成器的主要部分,它用于确定随机数生成的当前状态。拆分出来的key1, key2是两个新的子密钥,不同于key.
2024-06-19 10:32:09
108
原创 jax.nn.initializers.glorot_normal()
是JAX库中的一个函数,用于初始化神经网络的参数。它使用Glorot正态分布初始化方法,也称为Xavier正态初始化。这种初始化方法旨在使每个神经元的输出具有相同的方差,以促进梯度在网络中流动时的稳定性。
2024-06-19 09:34:54
120
原创 pickle.dump()
pickle.dump()用于将python对象序列化并写入文件。序列化是指将对象转换为字节流,这样可以将对象保存到文件。**file: **文件对象,必须以二进制写模式(wb)打开;**obj: **需要序列化的python对象;
2024-06-18 21:10:43
239
原创 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
1215
原创 文献总结: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
1018
原创 文献总结: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
1113
原创 文献总结: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
514
原创 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
1142
原创 DeepOnet
DeepOnetC(K)是定义在紧集K上的全体连续函数构成的空间;V是C(K)上的紧集.这里∑ciσ(λix+θi)\sum c_i\sigma(\lambda_ix+\theta_i)∑ciσ(λix+θi)形式上非常像xxx被权重和偏置作用之后再经过一个激活函数,然后乘上一些系数再求和.这个定理就是为了告诉我们激活函数都是TW函数.然后有如下的泛函万有逼近定理:紧接着的是如下的算子的万有逼近定理:可以发现绝对值中的第二项是形如【激活函数(权重*输入+偏置)*激活函数(权重*输入+偏置)】的
2024-04-15 15:10:05
907
1
原创 神经网络综述
注:是各大平台博主内容的一个汇总,如有侵权,请联系我。在人工智能领域,有一个方法叫机器学习。在机器学习这个方法里,有一类算法叫神经网络。隐藏层比较多(大于2)的神经网络叫做深度神经网络。而深度学习,就是使用深层架构(比如,深度神经网络)的机器学习方法(隐藏层多的机器学习):是一种前向结构的神经网络,映射一组输入向量到一组输出向量。MLP可以被看作是是一个有向图,由多个的节点层所组成,每一层都全连接到下一层。除了输入节点,每个节点都是一个带有非线性激活函数的神经元(或称处理单元)。
2024-04-08 17:32:31
1038
原创 降阶系统总结
EdtdxtAxtButytCxt其中EA∈Rn×nB∈Rn×pC∈Rm×nxt∈Rnut∈Rpyt∈Rm系统1的传递函数为HsCsE−A−1B。
2024-03-24 23:04:40
673
原创 MNA由来
uATv通过选取基准电压(参考节点),对于n个节点,m条边,可以得到关联矩阵M,再由KVL可以得到m条边的电压差向量,从而利用基准电压可以得到.
2024-03-24 16:03:34
173
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人