深度势能生成器(DP-GEN)入门讲解

文章目录

  • 1.原子间相互作用
      • 1.为什么研究原子间相互作用
      • 2.研究原子间相互作用的传统方法
  • 2.深度学习研究原子间相互作用
      • 1.深度势能平滑模型(DeepPot-se)
      • 2.Deep Potential 模型训练
      • 3.同步学习→充足采样&筛选样本
  • 3.DP-GEN操作及运行
      • 1.DP-GEN主流程
      • 2.DP-GEN基本命令
      • 3.生成初始数据
  • 4.DP-GEN案例:气态甲烷CH~4~
      • 1.init_bulk 过程
      • 2.run 过程
      • 3.machine.json文件

1.原子间相互作用

1.为什么研究原子间相互作用

   计算模拟在材料性质研究和设计中发挥日益重要的作用,其关键科学问题是材料的微观结构,而微观结构由原子间相互作用决定的。 E = E ( r 1 , r 2 , r 3 , . . . ) E=E(r1,r2,r3,...) E=E(r1,r2,r3,...) 其中 E E E为势能, r 1 , r 2 , r 3 r1,r2,r3 r1,r2,r3为原子坐标。

2.研究原子间相互作用的传统方法

  • 第一性原理计算
      KS-DFT: E [ ρ ] = F H K [ ρ ] + ∫ ρ ( r ) v e x t ( r ) d r E[\rho ]=F_{HK}[\rho]+\int \rho(r)v_{ext}(r)dr E[ρ]=FHK[ρ]+ρ(r)vext(r)dr F H K [ ρ ] = T [ ρ ] + V e e [ ρ ] F_{HK}[\rho]=T[\rho]+V_{ee}[\rho] FHK[ρ]=T[ρ]+Vee[ρ]

  • 经验力场
      Lennard-Jones 势: V L J = 4 ε [ ( σ r ) 12 − ( σ r ) 6 ] V_{LJ}=4\varepsilon [(\frac{\sigma }{r})^{12}-(\frac{\sigma }{r})^{6}] VLJ=4ε[(rσ)12(rσ)6]

2.深度学习研究原子间相互作用

E = E ( r 1 , r 2 , r 3 , . . . ) E=E(r1,r2,r3,...) E=E(r1,r2,r3,...)   原子间相互作用的研究在数学上是高维函数的表示和逼近问题,而传统数学工具对高维函数缺乏有效手段,深度学习为高维函数的逼近提供了有力工具。

1.深度势能平滑模型(DeepPot-se)

在这里插入图片描述
   笛卡尔坐标描述原子 i i i截断半径内的局域环境 R i = { r l i T , . . . , r j i T , . . . , r N i T , i } T , r j i = ( x j i , y j i , z j i ) \mathcal{R}^{i}=\left \{ r_{l_{i}}^{T},...,r_{j_{i}}^{T},...,r_{N_{i}}^{T},i \right \} ^{T},r_{ji}=(x_{ji},y_{ji},z_{ji}) Ri={rliT,...,rjiT,...,rNiT,i}T,rji=(xji,yji,zji)
   广义坐标 { x j i , y j i , z j i } → { s ( r j i ) , x ^ j i , y ^ j i , z ^ j i } \left \{x_{ji},y_{ji},z_{ji}\right \}\to \left \{ s(r_{ji}),\hat{x}_{ji},\hat{y}_{ji},\hat{z}_{ji}\right \} {xji,yji,zji}{s(rji),x^ji,y^ji,z^ji} x ^ j i = s ( r j i ) x j i r j i , y ^ j i = s ( r j i ) y j i r j i , z ^ j i = s ( r j i ) z j i r j i , a n d s ( r j i ) \hat{x}_{ji}=\frac{s(r_{ji})x_{ji}}{r_{ji}},\hat{y}_{ji}=\frac{s(r_{ji})y_{ji}}{r_{ji}},\hat{z}_{ji}=\frac{s(r_{ji})z_{ji}}{r_{ji}},and\quad s(r_{ji}) x^ji=rjis(rji)xji,y^ji=rjis(rji)yji,z^ji=rjis(rji)zji,ands(rji) s ( r j i ) = { 1 r j i , r j i < r c s 1 r j i { 1 2 c o s [ π ( r j i − r c s ) ( r c − r c s ) ] + 1 2 } , r c s < r j i < r c 0 , r j i > r c s(r_{ji})=\left\{\begin{matrix} \frac{1}{r_{ji}},\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad & r_{ji}<r_{cs}\quad \quad \\ \frac{1}{r_{ji}}\left\{\frac{1}{2}cos[\pi \frac{(r_{ji}-r_{cs})}{(r_{c}-r{cs})}]+\frac{1}{2} \right\}, & r_{cs}<r_{ji}<r_{c}\\ 0,\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad & r_{ji}>r_{c}\quad \quad \end{matrix}\right. s(rji)= rji1,rji1{21cos[π(rcrcs)(rjircs)]+21},0,rji<rcsrcs<rji<rcrji>rc

2.Deep Potential 模型训练

   能量: E = ∑ i E i E=\sum_{i} E_{i} E=iEi
   力: F = − ∇ R E ( F i j = − ∇ R i j E ) \mathcal{F}=-\nabla _{\mathcal{R}}E\quad (\mathcal{F}_{ij}=-\nabla_{\mathcal{R}_{ij}}E) F=RE(Fij=RijE)
   维里: Ξ = t r [ R ⊗ F ] ( Ξ i j = ∑ k = 1 N R k i F k i ) \Xi =tr[\mathcal{R}\otimes \mathcal{F}]\quad (\Xi_{ij}=\sum_{k=1}^{N}\mathcal{R}_{ki}\mathcal{F}_{ki}) Ξ=tr[RF](Ξij=k=1NRkiFki)    维里系数(Virial coefficient) B i B_{i} Bi是热力学状态方程按密度展开(称为维里展开)各项的系数。维里系数与分子间势能函数相关,体现多体相互作用对理想气体状态方程的修正。
   损失函数 L ( p ϵ , p f , p ξ ) = p ϵ Δ ϵ 2 + p f 3 N ∑ i ∣ Δ F i ∣ 2 + p ξ 9 ∣ ∣ Δ ξ ∣ ∣ 2 L(p_{\epsilon},p_{f},p_{\xi})=p_{\epsilon}\Delta \epsilon^{2}+\frac{p_{f}}{3N}\sum_{i}|\Delta F_{i}|^{2}+\frac{p_{\xi}}{9}||\Delta \xi||^{2} Lpϵ,pf,pξ=pϵΔϵ2+3Npfi∣ΔFi2+9pξ∣∣Δξ2 p ( t ) = p l i m i t [ 1 − r l ( t ) r l 0 ] + p s t a r t [ r l ( t ) r l 0 ] p(t)=p^{limit}[1-\frac{r_{l}(t)}{r_{l}^{0}}]+p^{start}[\frac{r_{l}(t)}{r_{l}^{0}}] p(t)=plimit[1rl0rl(t)]+pstart[rl0rl(t)]    方法:利用昂贵的第一性原理计算数据,通过神经网络进行训练,获得深度势能模型,从而精准预测势能面。

3.同步学习→充足采样&筛选样本

  • 采样器:DPMD
       DPMD势能面采样优势:高效、更新模型改进采样质量、改变MD条件拓展采样范围
       可拓展的采样策略:增强采样、蒙特卡洛、结构搜索…
  • 误差判据:模型偏差(model deviation)
    在这里插入图片描述
       模型偏差 ϵ t = m a x i ⟨ ∣ ∣ F ω , i ( R i ) − ⟨ F ω , i ( R i ) ⟩ ∣ ∣ 2 ⟩ \epsilon_{t}=max_{i}\sqrt{\left \langle \left || F_{\omega ,i}(\mathcal{R}_{i})-\left \langle F_{\omega ,i}(\mathcal{R}_{i})\right \rangle \right ||^{2} \right \rangle} ϵt=maxiFω,i(Ri)Fω,i(Ri)2    真实“力”偏差: ϵ ^ t = m a x i ⟨ ∣ ∣ F ω , i ( R i ) − F ~ ω , i ( R i ) ∣ ∣ 2 ⟩ \hat{\epsilon}_{t}=max_{i}\sqrt{\left \langle || F_{\omega ,i}(\mathcal{R}_{i})- \tilde{F}_{\omega ,i}(\mathcal{R}_{i}) ||^{2} \right \rangle} ϵ^t=maxi∣∣Fω,i(Ri)F~ω,i(Ri)2    基于不同的随机数训练出来的4个DP力场graph.pb,跑LAMMPS轨迹。如果4个DP力场对同一结构预测有分歧,则被标记该结构
  • DP-GEN标记数据点(相较于AIMD)的优势:
       1.速度快,只需要跑LAMMPS,对于特定结构计算DFT的单点能即可。如果采用AIMD标记数据点,则会浪费更多的算力。
       2.探索相空间更大,降低重复性数据。如果采用AIMD,则相邻帧之间相关性太强,相空间中部分区域数据重复出现,而部分区域又探索不到。

3.DP-GEN操作及运行

1.DP-GEN主流程

在这里插入图片描述

  • Exploration:探索样本空间,调用MD模拟软件
  • Labeling:增加标记样本,调用DFT计算软件
  • Training:训练新的模型,调用DeePMD-kit

2.DP-GEN基本命令

  • DP-GEN基本命令:
      dpgen sub-command PARAM MACHINE
  • sub-command为DP-GEN支持的任务类型,基本流程包括init_bulk/init_surf,run,test
      init_bulk/init_surf:为体相/表面体系准备初始数据
      run:深度势能生成器主流程
      test:计算模型在参考体系性质测试中的表现
  • PARAM:输入参数文件,各类型任务需要独立的参数文件
  • MACHINE:机器配置文件
  • Run主流程:dpgen run param machine
      多次迭代,每次迭代包括三个步骤:00.tran(Training,训练新的模型)、01.model_devi(Exploration,探索样本空间)、02.fp(Labeling,增加样本标记)

3.生成初始数据

  • 直接跑AIMD
      1.AIMD的温度要高于LAMMPS采样实际温度
      2.多选择不相干的初始结构跑,扩大相空间初始范围。
      3.间隔取点保存成数据集,避免相邻数据过于重复。
  • dpgen init_bulk/dpgen init_surf
      对原始晶胞进行压缩/扩展/畸变,对原子结构进行微扰,以模拟极端情况,扩大搜索相空间范围。

4.DP-GEN案例:气态甲烷CH4

  • 甲烷案例下载:https://dp-public.oss-cn-beijing.aliyuncs.com/community/dpgen_example.tar.xz

1.init_bulk 过程

  • 运行命令:dpgen init_bulk param.json machine.json
  • param.json文件
    {
      "stages":           [1,2,3,4],
      "cell_type":	"diamond",
      "super_cell":	[1, 1, 1],
      "elements":		["H","C"],
      "from_poscar":	true,
      "from_poscar_path":	"./CH4.POSCAR",
      "potcars":		["../run/POTCAR_H", "../run/POTCAR_C"],
      "relax_incar": 	"./INCAR_methane.rlx",
      "md_incar" : 	"./INCAR_methane.md",
      "scale":		[1.00],
      "skip_relax":	false,
      "pert_numb":	30,
      "md_nstep" : 	10,
      "pert_box":		0.03,
      "pert_atom":	0.01,
      "coll_ndata":	5000,
      "_comment":		"that's all"
    }
    

   1.stage:init_bulk 分为4个阶段,用数字1至4表示:1-初始结构的优化,2-对优化后结构进行微扰和缩放,3-对2的结构进行AIMD,4-收集AIMD数据。可将任意阶段组合,如[1,2,3,4]或[2,3]等。
   2.cell_type晶体结构类型,目前仅支持:fcc, hcp, bcc, sc, diamond 5种。可删掉,dpgen init_bulk 通过 from_poscar 和 from_poscar_path获得结构信息。
   3.super_cell:向xyz方向扩胞,[1, 1, 1]表示不扩胞
   4.elements:元素,与POSCAR文件一一对应
   5.from_poscar:是否使用给定的POSCAR文件作为弛豫的初始结构。如果为False,需设置cell_type和latt参数确定结构信息。
   6.from_poscar_path:VASP的POSCAR文件的路径。如果 from_poscar 为 true,则必需
   7.potcarsPOTCAR文件的路径。
   8.relax_incar:VASP中弛豫的INCAR文件的路径。如果包括阶段1,则必需
   9.md_incar:VASP中AIMD的INCAR文件的路径。如果包括阶段3,则必需
   10.scale:保持各向同性时的等比例缩放因子,[1.00]默认不缩放。
   11.skip_relax:如果为 true,则直接使用未弛豫的POSCAR文件进行阶段2(微扰和缩放)
   12.pert_numb:POSCAR文件的扰动结构的数目
   13.md_nstep:阶段3的AIMD步数。如果与md_incar中NSW不同,则遵循NSW。
   14.pert_box盒子尺寸的扰动,从均匀分布 [-pert_box, pert_box] 中随机采样。
   15.pert_atom原子坐标的扰动,单位埃,从均匀分布 [-pert_atom, pert_atom] 中随机采样。
   16.coll_ndata:最大数据收集量。
   17._comment:注释信息。

2.run 过程

  • 运行命令:dpgen run param.json machine.json
  • param.json文件
    {
       "type_map": ["H","C"],
       "mass_map": [1,12],
       "init_data_prefix": "../",
       "init_data_sys": ["init/CH4.POSCAR.01x01x01/02.md/sys-0004-0001/deepmd"],
       "sys_configs_prefix": "../",
       "sys_configs": [
           ["init/CH4.POSCAR.01x01x01/01.scale_pert/sys-0004-0001/scale-1.000/00000*/POSCAR"],
           ["init/CH4.POSCAR.01x01x01/01.scale_pert/sys-0004-0001/scale-1.000/00001*/POSCAR"]
       ],
       "_comment": " that's all ",
       "numb_models": 4,
       "default_training_param": {
           "model": {
               "type_map": ["H","C"],
               "descriptor": {
                   "type": "se_e2_a",
                   "sel": [16,4],
                   "rcut_smth": 0.5,
                   "rcut": 5.0,
                   "neuron": [120,120,120],
                   "resnet_dt": true,
                   "axis_neuron": 12,
                   "seed": 1
               },
               "fitting_net": {
                   "neuron": [25,50,100],
                   "resnet_dt": false,
                   "seed": 1
               }
           },
           "learning_rate": {
               "type": "exp",
               "start_lr": 0.001,
               "decay_steps": 5000
           },
           "loss": {
               "start_pref_e": 0.02,
               "limit_pref_e": 2,
               "start_pref_f": 1000,
               "limit_pref_f": 1,
               "start_pref_v": 0.0,
               "limit_pref_v": 0.0
           },
           "training": {
               "stop_batch": 2000,
               "disp_file": "lcurve.out",
               "disp_freq": 1000,
               "numb_test": 4,
               "save_freq": 1000,
               "save_ckpt": "model.ckpt",
               "disp_training": true,
               "time_training": true,
               "profiling": false,
               "profiling_file": "timeline.json",
               "_comment": "that's all"
           }
       },
       "model_devi_dt": 0.002,
       "model_devi_skip": 0,
       "model_devi_f_trust_lo": 0.05,
       "model_devi_f_trust_hi": 0.15,
       "model_devi_clean_traj": true,
       "model_devi_jobs": [
           {"sys_idx": [0],"temps": [100],"press": [1.0],"trj_freq": 10,"nsteps": 300,"ensemble": "nvt","_idx": "00"},
           {"sys_idx": [1],"temps": [100],"press": [1.0],"trj_freq": 10,"nsteps": 3000,"ensemble": "nvt","_idx": "01"}
       ],
       "fp_style": "vasp",
       "shuffle_poscar": false,
       "fp_task_max": 20,
       "fp_task_min": 5,
       "fp_pp_path": "./",
       "fp_pp_files": ["POTCAR_H","POTCAR_C"],
       "fp_incar": "./INCAR_methane"
    }
    
  • I 基础参数设置:
    1.type_map,mass_map:原子类型、相对原子质量,两者与type.raw文件一一对应
    2.init_data_prefix,init_data_sys:训练模型初始数据的位置,prefix为路径前缀。
    3.sys_configs_prefix,sys_configs分子动力学模拟和计算model deviation的结构位置,prefix为路径前缀。
    4.numb_models:训练模型的数量,推荐4个
  • II Deepmd-kit参数设置(default_training_param):
    1.描述符(descriptor)与拟合网络(fitting_net)设置:
           type:se_e2_a,根据原子构型的所有信息(角度和径向)构建模型,将原子间距离作为输入。
           sel:截止半径内的
    最大邻居量
    ,sel[i]表示类型i的邻居的最大邻居数。
           rcut_smth,rcut:模型的平滑起始距离截止距离
           neuron每个隐藏层的神经元数量,从输入到输出。
           resnet_dt:如果为 true,在ResNet加入时间步长。
           axis_neuron:嵌入矩阵的子矩阵大小
           seed:随机种子,用于初始化模型参数。
    2.descriptor:将原子构型映射成一组对称不变性的描述符
        fitting_net描述符为输入预测目标的物理属性的神经网络。
    3.学习率(learning_rate)设置:
           start_lr:训练初始学习率
           decay_steps:学习率衰减步数
    4.损失函数(loss)设置:
           start_pref_e:训练开始时能量损失的前因子,大于等于0。如果start_pref_e和limit_pref_e均为0,则忽略能量损失。
           limit_pref_e:训练极限时能量损失的前因子,大于等于0。
           start_pref_f:训练开始时力损失的前因子,大于等于0。如果start_pref_f和limit_pref_f均为0,则忽略力损失。
           limit_pref_f:训练极限时力损失的前因子,大于等于0。
           start_pref_v:训练开始时维里损失的前因子,大于等于0。如果start_pref_v和limit_pref_v均为0,则忽略维里损失。
           limit_pref_v:训练极限时维里损失的前因子,大于等于0。
    5.训练(training)设置:
           stop_batch/numb_steps::训练的停止批次或步数。
           disp_file": 保存学习曲线的文件路径。
           disp_freq":输出学习曲线的频率。
           numb_test": 4,
           save_freq保存检查点的频率,检查点是指在训练过程中定期保存的模型参数快照。
           save_ckpt:检查点文件的保存路径。
           disp_training:是否输出训练的详细信息
           time_training:是否记录训练时间
           profiling:是否记录训练中的性能分析数据
           profiling_file性能分析数据保存文件路径。
  • III LAMMPS相关设置:
       model_devi_dt:MD 的时间步长,建议为0.002,单位ps。
       model_devi_skip:MD 中跳过的fp(First Principles)结构数。
       model_devi_f_trust_lo:选取结构的力偏差最小值。
       model_devi_f_trust_hi:选取结构的力偏差最大值,最大值一般为最小值的3、4倍。
       model_devi_clean_traj:是否清理 MD 中的 traj(轨迹)文件夹
       model_devi_jobs
           sys_idx:MD初始结构的系统ID,该ID与 sys_configs 一一对应
           temps:MD模拟的温度(K)
           press:在npt系综下,MD模拟的压力(Bar)
           trj_freq:保存MD轨迹的频率。
           nsteps:MD模拟的步数,逐轮增大步数。
           ensemble系综设置(nvt/npt)。
           _idx:注释id。
  • IIII VASP相关设置:
       fp_style第一性原理计算软件类型。
       shuffle_poscar:模拟前是否每帧打乱原子
       fp_task_max:每次迭代计算的最多结构数
       fp_task_min:每次迭代计算的最少结构数,低于此数值将直接进行下次迭代。
       fp_pp_path赝势文件的路径。
       fp_pp_files赝势文件名,与type_map一一对应。
       fp_incarINCAR文件

3.machine.json文件

{
	"api_version": "1.0",
	"deepmd_version": "2.2.10",
	"train" :[
		{
			"command": "dp",
			"machine": {
				"batch_type": "Shell",
				"context_type": "local",
				"local_root" : "./",
				"remote_root": "/home/ecust/lws"
			},
			"resources": {
				"number_node": 1,
				"cpu_per_node": 4,
				"gpu_per_node": 1,
				"group_size": 1
			}
		}
	],
	"model_devi":[
		{
			"command": "mpirun -n 4 lmp_mpi -i input.lammps",
			"machine": {
				"batch_type": "Shell",
				"context_type": "local",
				"local_root" : "./",
				"remote_root": "/home/ecust/lws"
			},
			"resources": {
				"number_node": 1,
				"cpu_per_node": 4,
				"gpu_per_node": 1,
				"group_size": 5
			}
		}
	],
	"fp":[
		{
			"command": "mpirun -n 4 vasp_std",
			"machine": {
				"batch_type": "Shell",
				"context_type": "local",
				"local_root" : "./",
				"remote_root": "./"
			},
			"resources": {
				"number_node": 1,
				"cpu_per_node": 4,
				"gpu_per_node": 1,
				"group_size": 125
			}
		}
	]
}
  • api_version:api版本,1.0
  • deepmd_version:DeePMD-kit版本
  • train/model_devi/fp设置:
      1.command提交任务的命令。
      2.batch_type批处理作业系统类型,PBS(PBS队列)、Slurm(Slurm队列)、LSF(LSF队列)、Shell(无队列系统,直接用shell运行任务)。
      3.context_type远程机器连接类型,local(通过本地文件存储系统拷贝传输)、ssh(通过ssh和远程服务器通信上传和下载数据)。
      4.local_root:本地运行任务的目录,推荐设置为“./”
      5.remote_root远程计算机上运行任务的目录,如果本地运行则写本地任务的运行目录。
      6.number_node:每个作业需要的节点数
      7.cpu_per_node:分配给每个作业的每个节点的 cpu 数
      8.gpu_per_node:分配给每个作业的每个节点的 gpu 数
      9.group_size作业中的任务数量,把多少任务放到一个提交脚本里, 0 表示无穷大。

参考文献:Wen T, Zhang L, Wang H, et al. Deep potentials for materials science[J]. Materials Futures, 2022, 1(2): 022601.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/762172.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Sui创始团队在竞速环节中的快问快答

在Sui Basecamp活动期间&#xff0c;Sui区块链的最初贡献者在Oracle红牛赛车模拟器上展示了他们的技术能力&#xff0c;在驾驶圈时回答了有关Sui的问题。 Evan Cheng&#xff08;又名Revvin’ Evan&#xff09;在解释Mysticeti创下区块链最终性记录的同时保持着他的驾驶线路。…

【深度好文】LLMOps揭秘:AI工作流程的高效管理之道!

可以关注我的公众号&#xff1a;Halo咯咯 01。 概述 将大型语言模型&#xff08;LLMs&#xff09;的强大能力与机器学习运维&#xff08;MLOps&#xff09;的有序结构相结合&#xff0c;团队能够以更高效的方式工作&#xff0c;而非仅仅增加劳动强度。团队的焦点可以专注于开…

Redis分布式集群部署

目录 一. 原理简述 二. 集群配置​​​​​​​ 2.1 环境准备 2.2 编译安装一个redis 2.3 创建集群 2.4 写入数据测试 实验一&#xff1a; 实验二&#xff1a; 实验三&#xff1a; 实验四&#xff1a; 添加节点 自动分配槽位 提升节点为master&#xff1a; 实验…

Spring Security 认证流程

Spring Scurity是spring生态下用于认证和授权的框架&#xff0c;具有高度的灵活性和可扩展行&#xff0c;本节主要对Spring Security的认证过程中进行概括性的介绍&#xff0c;主要介绍在该过程中&#xff0c;会涉及到哪些组件以及每个组件所承担的职责&#xff0c;希望大家可以…

Java [ 基础 ] 方法引用 ✨

✨探索Java基础✨ Java基础&#xff1a;方法引用 方法引用是Java 8中引入的一种新特性&#xff0c;它使得代码更加简洁和易读。方法引用提供了一种可以直接引用已有方法作为Lambda表达式的替代方案。本文将深入介绍方法引用的基本概念、使用方法、具体实例及其在实际开发中的…

Open3D 点云的旋转与平移

目录 一、概述 1.1旋转 1.2平移 二、代码实现 2.1实现旋转 2.2实现平移 2.3组合变换 三、实现效果 3.1原始点云 3.2变换后点云 一、概述 在Open3D中&#xff0c;点云的旋转和平移是通过几何变换来实现的。几何变换可以应用于点云对象&#xff0c;使其在空间中移动或旋…

MobPush iOS端海外推送最佳实现

推送注册 在AppDelegate里进行SDK初始化&#xff08;也可以在Info.plist文件中进行AppKey&#xff0c;AppSecret的配置&#xff09;并对通知功能进行注册以及设置推送的环境和切换海外服务器等&#xff0c;参考如下步骤代码&#xff1a; <span style"background-colo…

叮!云原生虚拟数仓 PieCloudDB Database 动态包裹已送达

第一部分 PieCloudDB Database 最新动态 支持动态配置查询簇 PieCloudDB 最新内核版本 v2.14.0 新增动态配置查询簇功能。PieCloudDB 动态配置查询簇功能实现可伸缩的并行化查询&#xff0c;可提升单个查询并行使用底层资源的能力&#xff0c;同时加快查询响应速度。 动态配…

redis,memcached,nginx网络组件

课程目标&#xff1a; 1.网络模块要处理哪些事情 2.reactor是怎么处理这些事情的 3.reactor怎么封装 4.网络模块与业务逻辑的关系 5.怎么优化reactor? io函数 函数调用 都有两个作用&#xff1a;io检测 是否就绪 io操作 1. int clientfd accept(listenfd, &addr, &l…

navicat Lite 版

navicat Lite 版&#xff1a; Navicat 出了一个 Navicat Premium 的Lite版。 官方现在链接&#xff1a;https://www.navicat.com.cn/download/navicat-premium-lite#windows 从官网可以看到现在能够下载最新版本 17&#xff0c;支持各种平台

大型语言模型能否生成可信的事实核查解释?——通过多智能体辩论实现可信可解释的事实核查

Can LLMs Produce Faithful Explanations For Fact-checking? Towards Faithful Explainable Fact-Checking via Multi-Agent Debate 论文地址:https://arxiv.org/abs/2402.07401https://arxiv.org/abs/2402.07401 1.概述 在数字化时代,对于迅速传播的错误信息,其核实与明…

模拟电子学基本概念+Keil5安装指南!!

2024-7-1&#xff0c;星期一&#xff0c;16:56&#xff0c;天气&#xff1a;阴转小雨&#xff0c;心情&#xff1a;晴。大家好啊&#xff0c;今天换了一个新的主题&#xff0c;为什么嘞&#xff0c;是因为截止到昨天&#xff0c;电路基础部分的内容已经暂时告一段落啦&#xff…

【智慧岛】自动跳过神器,比李跳跳更强的替代品!

大家好&#xff0c;我是坤坤黑科技&#xff01;手机App的开屏广告似乎成了我们日常生活的一部分。虽然它们只占用我们几秒钟的时间&#xff0c;但累积起来却是一个不小的数字。之前给大家分享了李跳跳的最新规则&#xff0c;但是还是有好多的朋友反馈有一些广告无法跳过。这是因…

JDBC1(JDBC相关类与接口 ​连接mysql数据库​ 测试 不同数据库厂商实现-MySQL和Oracle)

目录 一、JDBC 1. JDBC相关类与接口 1.1 DriverManager 1.2 Connection 1.3 Statement 4.ResultSet 2. JDBC工作原理 二、连接mysql数据库 1. 导入jar包 2. 使用DriverManager加载驱动类 3. Connection接口 4. Statement接口 5. ResultSet接口 ​编辑 6. 关闭并…

主成分分析(PCA)详解与Python实现

1. 引言 主成分分析&#xff08;PCA&#xff09;是一种统计方法&#xff0c;它通过正交变换将一组可能相关的变量转换成一组线性不相关的变量&#xff0c;这些不相关变量称为主成分。PCA常用于降维、数据压缩和模式识别等领域。 喜欢的伙伴们点个关注哦~~❤❤❤ 2. 理论基础…

第15周:RNN心脏病预测

目录 前言 二、前期准备 2.1 设置GPU 2.2 导入数据 2.2.1 数据介绍 2.2.2 导入代码 2.2.3 检查数据 三、数据预处理 3.1 划分训练集与测试集 3.2 标准化 四、构建RNN模型 4.1 基本概念 4.2 搭建代码 五、编译模型 六、训练模型 七、模型评估 总结 前言 &#…

掌握 Python 中 isinstance 的正确用法

&#x1f44b; 简介 isinstance() 函数用于判断一个对象是否是一个特定类型或者在继承链中是否是特定类型的实例。它常用于确保函数接收到的参数类型是预期的。 &#x1f4d6; 正文 1 语法 isinstance(object, classinfo) object参数是要检查的对象&#xff1b;classinfo参数…

幻兽帕鲁联机延迟高、无法联机、联机卡顿?这样解决

幻兽帕鲁是一款超人气的冒险游戏&#xff0c;该作曾被讽刺为抄袭怪、缝合怪&#xff0c;但是依旧架不住其在全球的爆火的架势&#xff0c;近期该作更新了游戏内的首个大型地图&#xff0c;并且还新增了区域系统上限、多人专用斗技场和部分游玩内容优化&#xff0c;也吸引了很多…

昇思25天学习打卡营第03天 | 张量 Tensor

昇思25天学习打卡营第03天 | 张量 Tensor 文章目录 昇思25天学习打卡营第03天 | 张量 Tensor张量张量的创建张量的属性Tensor与NumPy转换稀疏张量CSRTensorCOOTensor 总结打卡 张量 张量&#xff08;Tensor&#xff09;是一种类似于数组和矩阵的特殊数据结构&#xff0c;是神经…

AI智能在Type-C领域的应用

随着科技的飞速发展&#xff0c;Type-C接口凭借其卓越的性能和广泛的应用场景&#xff0c;已成为现代电子设备中不可或缺的一部分。而AI智能技术的兴起&#xff0c;为Type-C领域带来了革命性的变革&#xff0c;推动了其功能的进一步完善和应用领域的拓展。本文将探讨AI智能在Ty…