当前位置: 首页 > news >正文

内坐标转换计算

前言

化学这边的库太多了。
cs这边的库太少了。
去看化学的库太累了。
写一个简单的实现思路,让cs的人能看懂。

向量夹角的范围

[0, pi)
这是合理的。
因为两个向量只能构成一个平面系统,平面系统内的夹角不能超过pi。

二面角的范围

涉及二面角,说明坐标空间至少是E(3),可以更高维。

严格定义

严格意义上,二面角的定义是2个半平面的夹角。
在严格定义下,二面角的取值范围必然是 [0, pi)

但上面这个定义显然不是我们cs人喜欢的。
因为在E(3)中,如果使用[0,pi)的二面角定义坐标系统,则会有手性问题

例如:

下图中2个D都符合要求。
(图略)

本质上是因为,与某一半平面A的夹角为 [ 0 , π ) [0, \pi) [0,π) 的半平面有2个。
需要一个额外的sign来指示,point处于这两个半平面中的哪一个。

使用 [ − π , π ) [-\pi, \pi) [π,π)的广义二面角,可以唯一确定一个三维空间内的相对位置。

这个广义二面角事实上等价于 旋转角 。
旋转角就是采用四元数计算的,范围也是 [ 0 , 2 π ) [0, 2\pi) [0,2π)

两个向量的旋转角,是指从向量p1开始,逆时针旋转,转到向量p2时,所转过的角度, 范围是 0 ~ 360度

定义

给定一个有序列(ordered sequence) = [A,B,C,D]。
约定 A,B,C,D 构成的广义二面角为向量 B A ⃗ , C B ⃗ , D C ⃗ \vec{BA}, \vec{CB}, \vec{DC} BA ,CB ,DC 构成的2个平面法向量
n ⃗ 1 = n ⃗ C B A \vec{n}_1=\vec{n}_{CBA} n 1=n CBA n ⃗ 2 = n ⃗ D C B \vec{n}_2=\vec{n}_{DCB} n 2=n DCB之间, n ⃗ 2 \vec{n}_{2} n 2 逆时针转到 n ⃗ 1 \vec{n}_{1} n 1 的旋转角。

(后一个面的法向量转到前一个面)

可以这样想,在E3空间中,给定2个向量,用右手定则可以得到他们叉乘的法向量。
从该法向量逆向往正向看去,就能建立一个2D平面坐标系。
在该2D平面坐标系上,v2逆时针旋转到v1的夹角是唯一确定的,取值[0,2pi)。

https://zhuanlan.zhihu.com/p/45404840

笛卡尔坐标转内坐标

Convention

在这里插入图片描述

示例输入:

import torchcart_coord = torch.tensor([[1,0,0],[0,0,0],[0,2,0],[0,0,2]])

我们期望得到的内坐标

tensor([ 1.0000, 2.0000, 2.8284, 1.5708, 0.7854, -1.5708])

转成易读形式:

1.0000, 2.0000, 2.8284, pi/2, pi/4, -pi/2

键角[0, pi) 。

对最后一个元素,即广义二面角,需要做说明。

在该特殊例子中,
后一个面DCB的法向量是 B A ⃗ \vec{BA} BA (右手定则),
前一个面CBA的法向量是 D B ⃗ \vec{DB} DB (右手定则)。

后者逆时针转到前者的角度是 -pi/2。 ( 取值范围 [-pi, pi) )。

进一步地,我们可以证明,在general case中,
后一个面按右手定则得到的法向量,等于 B A ⃗ \vec{BA} BA 垂直于 C B ⃗ \vec{CB} CB 的分量。
前一个面按右手定则得到的法向量,等于 D C ⃗ \vec{DC} DC 垂直于 C B ⃗ \vec{CB} CB 的分量。

于是二面角 (D,C,B,A)本质上就是 B A ⃗ \vec{BA} BA D C ⃗ \vec{DC} DC C B ⃗ \vec{CB} CB 垂直平面上的分量之间的夹角。
理解这个性质对下面的内容会有帮助。

内坐标转笛卡尔算法

前置知识: 向量绕任意轴旋转矩阵

https://zhuanlan.zhihu.com/p/380237903
https://blog.csdn.net/FreeSouthS/article/details/112576370
https://zhuanlan.zhihu.com/p/56587491

Rodrigues’旋转公式
设旋转轴 n ⃗ = ( n x , n y , n z ) \vec{n}=(n_x,n_y,n_z) n =(nx,ny,nz)

写出 n ⃗ \vec{n} n 的叉乘矩阵:
N = [ 0 , − n z , n y n z , 0 , − n x − n y , n x , 0 ] N=\left[\begin{array}{ccc}0, & -n_z, & n_y \\ n_z, & 0, & -n_x \\ -n_y, & n_x, & 0\end{array}\right] N= 0,nz,ny,nz,0,nx,nynx0

于是叉乘:
n × p = [ 0 , − n z , n y n z , 0 , − n x − n y , n x , 0 ] p = N p \mathbf{n} \times \mathbf{p}=\left[\begin{array}{ccc}0, & -n_z, & n_y \\ n_z, & 0, & -n_x \\ -n_y, & n_x, & 0\end{array}\right] \mathbf{p}=\mathbf{N} \mathbf{p} n×p= 0,nz,ny,nz,0,nx,nynx0 p=Np

于是绕 n ⃗ \vec{n} n 的旋转矩阵为:
R = I + sin ⁡ ( θ ) N + ( 1 − cos ⁡ ( θ ) ) N 2 \mathbf{R}=\mathbf{I}+\sin (\theta) \mathbf{N}+(1-\cos (\theta)) \mathbf{N}^2 R=I+sin(θ)N+(1cos(θ))N2

旋转后向量
p ⃗ ′ = R p ⃗ \vec{p}'=\mathbf{R}\vec{p} p =Rp

或者用向量形式
p ′ = p ⊥ ′ + p ∥ ′ = cos ⁡ ( θ ) p ⊥ + sin ⁡ ( θ ) ( n × p ) + p ∥ = cos ⁡ ( θ ) ( p − p ∥ ) + p ∥ + sin ⁡ ( θ ) ( n × p ) = cos ⁡ ( θ ) p + ( 1 − cos ⁡ ( θ ) ) ( n ⋅ p ) n + sin ⁡ ( θ ) ( n × p ) \begin{gathered}\mathbf{p}^{\prime}=\mathbf{p}_{\perp}^{\prime}+\mathbf{p}_{\|}^{\prime}=\cos (\theta) \mathbf{p}_{\perp}+\sin (\theta)(\mathbf{n} \times \mathbf{p})+\mathbf{p}_{\|} \\ =\cos (\theta)\left(\mathbf{p}-\mathbf{p}_{\|}\right)+\mathbf{p}_{\|}+\sin (\theta)(\mathbf{n} \times \mathbf{p}) \\ =\cos (\theta) \mathbf{p}+(1-\cos (\theta))(\mathbf{n} \cdot \mathbf{p}) \mathbf{n}+\sin (\theta)(\mathbf{n} \times \mathbf{p})\end{gathered} p=p+p=cos(θ)p+sin(θ)(n×p)+p=cos(θ)(pp)+p+sin(θ)(n×p)=cos(θ)p+(1cos(θ))(np)n+sin(θ)(n×p)

即:

p ′ = cos ⁡ θ ( p − ( n ⋅ p ) n ) + ( n ⋅ p ) n + sin ⁡ θ ( n × p ) \mathbf{p}^{\prime}=\cos\theta (\mathbf{p}-(\mathbf{n} \cdot \mathbf{p}) \mathbf{n})+(\mathbf{n} \cdot \mathbf{p}) \mathbf{n}+\sin\theta(\mathbf{n} \times \mathbf{p}) p=cosθ(p(np)n)+(np)n+sinθ(n×p)

写成这种形式,因为计算机里面算三角函数的开销大于坐标运算。

内坐标转笛卡尔坐标;二面角复原

欲求 D C ⃗ \vec{DC} DC , 将其分解为 C B ⃗ \vec{CB} CB 上的分量,和 垂直于 C B ⃗ \vec{CB} CB 的分量。
(align with , orthogonal to C B ⃗ \vec{CB} CB )

已知距离和bond angle,align with 的分量很好求
D C ⃗ a l i g n = d cos ⁡ α C B ⃗ ∣ C B ⃗ ∣ \vec{DC}_{align} = d\cos \alpha\frac{\vec{CB}}{|\vec{CB}|} DC align=dcosαCB CB

复杂一点的是垂直分量。
先计算 B A ⃗ \vec{BA} BA C B ⃗ \vec{CB} CB 上的分量。
t ⃗ = B A ⃗ ⋅ C B ⃗ ∣ C B ⃗ ∣ C B ⃗ ∣ C B ⃗ ∣ = ( B A ⃗ ⋅ u ⃗ C B ) u ⃗ C B \vec{t}= \frac{\vec{BA}\cdot \vec{CB}}{|\vec{CB}|} \frac{\vec{CB}}{|\vec{CB}|} = (\vec{BA}\cdot \vec{u}_{CB}) \vec{u}_{CB} t =CB BA CB CB CB =(BA u CB)u CB , u ⃗ \vec{u} u 表示单位向量。
然后得到 B A ⃗ \vec{BA} BA 垂直于 C B ⃗ \vec{CB} CB 的分量
v ⃗ = B A ⃗ − t ⃗ \vec{v}=\vec{BA} - \vec{t} v =BA t

从后文可以知道,这一步如果把 B A ⃗ \vec{BA} BA 归一化为单位向量也无妨,因为我们在乎的只有方向。

按上文所言,以 C B ⃗ \vec{CB} CB 为视角,从逆向往正向看,建立平面坐标系。
v ⃗ \vec{v} v 为该平面上的 x ′ x' x 轴,
约定该平面上 y ′ y' y 轴正向是 v ⃗ × C B ⃗ \vec{v}\times\vec{CB} v ×CB (右手定则)。
D C ⃗ \vec{DC} DC 在该平面上的分量即为 D C ⃗ \vec{DC} DC 垂直于 C B ⃗ \vec{CB} CB 的分量。

根据上文的旋转角(广义二面角)定义, D C ⃗ \vec{DC} DC 在该平面上的分量,
即为 v ⃗ \vec{v} v 逆时针旋转{dihedral}度得到的向量。

即,问题变成了求 v ⃗ \vec{v} v C B ⃗ \vec{CB} CB 逆时针旋转 {dihedral} 度得到的向量。

应用上文所言的旋转公式
其中 旋转轴为 n ⃗ = C B ⃗ \vec{n}=\vec{CB} n =CB ,
w ⃗ = cos ⁡ θ ( v ⃗ − ( n ⃗ ⋅ v ⃗ ) n ⃗ ) + ( n ⃗ ⋅ v ⃗ ) n ⃗ + sin ⁡ θ ( n ⃗ × v ⃗ ) \vec{w} = \cos \theta (\vec{v}-(\vec{n} \cdot \vec{v})\vec{n}) + (\vec{n}\cdot \vec{v})\vec{n} +\sin\theta (\vec{n}\times \vec{v}) w =cosθ(v (n v )n )+(n v )n +sinθ(n ×v )

由于按照定义 v ⃗ \vec{v} v 是垂直于 C B ⃗ \vec{CB} CB 的分量,故两者内积为0。
上式进一步化简为
w ⃗ = cos ⁡ θ v ⃗ + sin ⁡ θ ( n ⃗ × v ⃗ ) \vec{w}=\cos\theta \vec{v} +\sin\theta (\vec{n}\times \vec{v}) w =cosθv +sinθ(n ×v )

旋转后的方向得到了,再考虑长度。
由键长知
D C ⃗ o r t h o = ∣ d sin ⁡ α ∣ w ⃗ ∣ w ⃗ ∣ \vec{DC}_{ortho}=|d\sin\alpha| \frac{\vec{w} }{|\vec{w} |} DC ortho=dsinαw w , 由于约定了键角[0,pi), sin ⁡ α > 0 \sin \alpha >0 sinα>0
D C ⃗ o r t h o = d sin ⁡ α w ⃗ ∣ w ⃗ ∣ \vec{DC}_{ortho}=d\sin\alpha \frac{\vec{w} }{|\vec{w} |} DC ortho=dsinαw w

最后
D C ⃗ = D C ⃗ a l i g n + D C ⃗ o r t h o = d cos ⁡ α u ⃗ C B + d sin ⁡ α u ⃗ w \vec{DC}=\vec{DC}_{align} + \vec{DC}_{ortho} = d\cos \alpha \vec{u}_{CB} + d\sin\alpha \vec{u}_{w} DC =DC align+DC ortho=dcosαu CB+dsinαu w;

u ⃗ \vec{u} u 表示单位向量。

于是D的坐标 = D C ⃗ + C \vec{DC}+C DC +C

前三个点处理

第一个点,按习惯固定(0,0,0)
第二个点,我看大部分库都默认放到z-axis上。于是(0, 0, dst)。
第三个点,按照距离和键角可以获得一个圆锥,约定第三个点放在zoy平面的y轴正半面上。

或者可以用兼容第4个点的方式说,
在y轴正向有一个假想点y, 于是(C,B,A,y) 构成的二面角为0。

注意!

本文默认坐标是(x,y,z)顺序。

测试样例

下图为例,左边是输入坐标。
右边是我们希望还原得到的坐标。
A在原点,B在z轴,c在zoy平面。
这等价于对原输入做一次平移和一次90度旋转。
在这里插入图片描述

# test
#输入
input_coord=torch.tensor([[1,0,0],[0,0,0],[0,2,0],[0,0,2]])
# 内坐标
inner_coord = torch.tensor([1.0000,  2.0000,  2.8284,  1.5708,  0.7854, -1.5708]
)
# 还原坐标
output_coord=torch.tensor([[0.0000e+00, 0.0000e+00, 0.0000e+00],[0.0000e+00, 0.0000e+00, 1.0000e+00],[0.0000e+00, 2.0000e+00, 1.0000e+00],[2.0000e+00, 1.1921e-07, 1.0000e+00]])

其他坐标系的兼容

主流的一些3D库,化学库,有些用的(z,x,y) 或者 (z, y, x)坐标顺序。
这个也简单。
我们返回的坐标交换一下顺序就能得到其他坐标系了。
output_coord[:, [1,2,0]] -> (z,x,y) 坐标。

speed test

cart2internal + internal2cart。

1w个样本约30.6s。
100w 样本约 1h。

相关文章:

内坐标转换计算

前言 化学这边的库太多了。 cs这边的库太少了。 去看化学的库太累了。 写一个简单的实现思路,让cs的人能看懂。 向量夹角的范围 [0, pi) 这是合理的。 因为两个向量只能构成一个平面系统,平面系统内的夹角不能超过pi。 二面角的范围 涉及二面角&…...

vue中 components自动注册,不需要一个个引入注册方法

1.在compontents文件夹新建js文件 componentRegister 不能引用文件夹里的组件** import Vue from "vue"; function capitalizeFirstLetter(string) { return string.charAt(0).toUpperCase() string.slice(1); } const requireComponent require.context( ".…...

web自动化测试从入门到持续集成

在很多刚学习自动化的可能会认为我只需要会运用selenium,我只需要在一个编辑器中实用selenium java编写了一些脚本那么就会自动化了,是真的吗?答案肯定是假的。自动化肯定是需要做到真的完全自动化,那如何实现呢?接着往…...

python小工具之弱密码检测工具

一、引用的python模块 Crypto: Python中一个强大的加密模块,提供了许多常见的加密算法和工具。它建立在pyc.ypodome或pyc.ypto等底层加密库之上,为Python程序员提供了简单易用的API,使其可以轻松地实现各种加密功能。 commands…...

链接器--动态链接器--延迟绑定与动态链接器是什么?学习笔记二

内容在下面链接(通过新建标签页打开): 链接器--动态链接器--延迟绑定与动态链接器是什么?学习笔记二一个例子来看延迟加载https://mp.weixin.qq.com/s?__bizMzkyNzYzMjMzNA&mid2247483713&idx1&snee90a5a7d59872287…...

JMeter CSV 参数文件的使用方法

.在 JMeter 测试中,参数化是非常重要的,参数化允许我们模拟真实世界中的各种情况。本文我们将探讨如何在 JMeter 中使用 CSV 参数文件。 创建 CSV 文件 首先,我们需要创建一个逗号分隔的值(CSV)文件,其中…...

how2heap-2.23-06-unsorted_bin_into_stack

#include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <string.h>// 从 unsorted bin 的 bk 去找合适的 void jackpot(){ fprintf(stderr, "Nice jump d00d\n"); exit(0); }int main() {intptr_t stack_buffer[4] {0};fpr…...

(学习打卡2)重学Java设计模式之六大设计原则

前言&#xff1a;听说有本很牛的关于Java设计模式的书——重学Java设计模式&#xff0c;然后买了(*^▽^*) 开始跟着小傅哥学Java设计模式吧&#xff0c;本文主要记录笔者的学习笔记和心得。 打卡&#xff01;打卡&#xff01; 六大设计原则 &#xff08;引读&#xff1a;这里…...

数据结构:第7章:查找(复习)

目录 顺序查找&#xff1a; 折半查找&#xff1a; 二叉排序树&#xff1a; 4. (程序题) 平衡二叉树&#xff1a; 顺序查找&#xff1a; ASL 折半查找&#xff1a; 这里 j 表示 二叉查找树的第 j 层 二叉排序树&#xff1a; 二叉排序树&#xff08;Binary Search Tree&…...

编程语言的未来?

编程语言的未来&#xff1f; 随着科技的飞速发展&#xff0c;编程语言在计算机领域中扮演着至关重要的角色。它们是软件开发的核心&#xff0c;为程序员提供了与机器沟通的桥梁。那么&#xff0c;在技术不断进步的未来&#xff0c;编程语言的走向又将如何呢&#xff1f; 在技…...

SpringBoot的测试

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开心好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…...

C++睡眠函数:Windows平台下的Sleep函数和Linux平台的usleep函数

C/C睡眠函数&#xff1a;Windows平台下的Sleep函数和Linux平台的usleep函数 WinAPI Sleep Sleep函数属于Windows API&#xff0c;使用它需要先包含synchapi.h。 void Sleep(DWORD dwMilliseconds);函数仅有一个参数&#xff08;睡眠时长&#xff09;&#xff0c;单位是毫秒。…...

详解白帽子以及红队、蓝队和紫队

企业继续数字化&#xff0c;其关键基础设施和运营扩大了攻击面&#xff0c;暴露于各种威胁途径的面前。为了解决这个问题&#xff0c;企业领导者认识到拥有内部专家的重要性。考虑到网络威胁领域不断发展的态势&#xff0c;企业领导者可以利用道德黑客以及红队、蓝队和紫队的工…...

1、docker常用技巧:docker数据位置更改

目录 &#x1f345;点击这里查看所有博文 随着自己工作的进行&#xff0c;接触到的技术栈也越来越多。给我一个很直观的感受就是&#xff0c;某一项技术/经验在刚开始接触的时候都记得很清楚。往往过了几个月都会忘记的差不多了&#xff0c;只有经常会用到的东西才有可能真正记…...

Qt之设置QLabel的背景色和前景色

方法有两种,一种是使用调色板,一种是使用样式表。 方法一:调色板 QPalette palette ; // 设置黑底绿字 palette .setColor(QPalette::Background, Qt::black); palette .setColor(QPalette::WindowText, Qt::green); // 这句不能少,否则没效果 ui->label->setAutoF…...

数模学习day06-主成分分析

主成分分析(Principal Component Analysis,PCA)主成分分析是一种降维算法&#xff0c;它能将多个指标转换为少数几个主成分&#xff0c;这些主成分是原始变量的线性组合&#xff0c;且彼此之间互不相关&#xff0c;其能反映出原始数据的大部分信息。一般来说当研究的问题涉及到…...

Windows PowerShell的安全目标——安全警报

Windows PowerShell的安全目标——安全警报 1. 保证Shell安全 ​ 自从2006年年底PowerShell发布以来&#xff0c;微软在安全和脚本方面并没有取得很好的名声。毕竟那个时候&#xff0c;**VBScript和Windows Script Host(WSH)**是两个最流行的病毒和恶意软件的载体&#xff0c…...

k8s笔记1- 初步认识k8s

k8s简介&#xff1a; kubernetes&#xff0c;俗称k8是&#xff0c;用于自动部署&#xff0c;扩缩和管理容器化应用程序的开源系统&#xff0c;它将组成应用程序的容器&#xff0c;组合成逻辑单元&#xff0c;便于管理和服务发现。 k8s的作用 自动化上线和回滚、存储编排…...

ARM CCA机密计算软件架构之内存加密上下文(MEC)

内存加密上下文(MEC) 内存加密上下文是与内存区域相关联的加密配置,由MMU分配。 MEC是Arm Realm Management Extension(RME)的扩展。RME系统架构要求对Realm、Secure和Root PAS进行加密。用于每个PAS的加密密钥、调整或加密上下文在该PAS内是全局的。例如,对于Realm PA…...

python基于flask实现一个文本问答系统

from flask import Flask, render_template, requestapp Flask(__name__)# 一个简单的问题-答案映射&#xff0c;实际中可以使用更复杂的存储结构&#xff08;数据库等&#xff09; qa_pairs {"什么是人工智能&#xff1f;": "人工智能是模拟人类智能的一种机…...

lambda表达式使用和示例

lambda表达式 什么是lambda 学习lamdba有两个结构十分关键&#xff0c;一个是lamdba自己&#xff0c;另一个是函数式接口 lamdba lamdba表达式本质上就是匿名方法&#xff0c;不能独立运行用于实现函数式接口定义的另一个方法&#xff0c;因此lamdba会产生一个匿名类lamdba…...

STM32学习笔记十八:WS2812制作像素游戏屏-飞行射击游戏(8)探索游戏多样性,范围伤害模式

前面我们的攻击手段比较单一&#xff0c;虽然已经分出了 EnemyT1 / EnemyT2 / EnemyT3&#xff0c; 但里面还是基本一样的。这回&#xff0c;我们尝试实现一些新的攻击方法&#xff0c;实现一些新的算法。 1、前面我们小飞机EnemyT1 的攻击方式是垂直向下发射子弹。 那么大飞机…...

C#获取windows系统资源使用情况

1.前言 之前有一篇博客介绍如何获取Linux服务器上的资源使用情况《Java 获取服务器资源&#xff08;内存、负载、磁盘容量&#xff09;》&#xff0c;这里介绍如何通过C#获取Window系统的资源使用。 2.获取服务器资源 2.1.内存 [DllImport("kernel32.dll")][retu…...

PE解释器之PE文件结构

PE文件是由许许多多的结构体组成的&#xff0c;程序在运行时就会通过这些结构快速定位到PE文件的各种资源&#xff0c;其结构大致如图所示&#xff0c;从上到下依次是Dos头、Nt头、节表、节区和调试信息(可选)。其中Dos头、Nt头和节表在本文中统称为PE文件头(因为SizeOfHeaders…...

Android—— MIPI屏调试

一、实现步骤 1、在kernel/arch/arm/boot/dts/lcd-box.dtsi文件中打开&dsi0节点&#xff0c;关闭其他显示面板接口&#xff08;&edp_panel、&lvds_panel&#xff09; --- a/kernel/arch/arm/boot/dts/lcd-box.dtsib/kernel/arch/arm/boot/dts/lcd-box.dtsi-5,14 …...

BLE协议—协议栈基础

BLE协议—协议栈基础 BLE协议栈基础通用访问配置文件层&#xff08;Generic Access Profile&#xff0c;GAP&#xff09;GAP角色设备配置模式和规程安全模式广播和扫描 BLE协议栈基础 蓝牙BLE协议栈包含三部分&#xff1a;主机、主机接口层和控制器。 主机&#xff1a;逻辑链路…...

yolov8知识蒸馏代码详解:支持logit和feature-based蒸馏

文章目录 1. 知识蒸馏理论2. yolov8 蒸馏代码应用2.1 环境配置2.2 训练模型(1) 训练教师模型(2) 训练学生模型baseline(3) 蒸馏训练3. 知识蒸馏代码详解3.1 蒸馏参数设置3.2 蒸馏损失代码讲解3.2.1 Feature based loss3.2.1 Logit loss3.3 获取蒸馏的feature map及channels...

03-微服务-Ribbon负载均衡

Ribbon负载均衡 1.1.负载均衡原理 SpringCloud底层其实是利用了一个名为Ribbon的组件&#xff0c;来实现负载均衡功能的。 那么我们发出的请求明明是http://userservice/user/1&#xff0c;怎么变成了http://localhost:8081的呢&#xff1f; 1.2.源码跟踪 为什么我们只输入…...

2023新年总结与展望

2023年总结 对Spring Cloud微服务更加熟悉&#xff0c;对consul、kafka、gateway的熟悉和掌握更近一步对docker和虚拟化部署更加熟悉对PostgreSQL数据库和JPA更加熟悉对clickhouse数据库和大数据分析更加熟悉对netty和socket网络通信更加熟悉 2024年flag 继续深入研究和学习…...

论文阅读——SG-Former

SG-Former: Self-guided Transformer with Evolving Token Reallocation 1. Introduction 方法的核心是利用显著性图&#xff0c;根据每个区域的显著性重新分配tokens。显著性图是通过混合规模的自我关注来估计的&#xff0c;并在训练过程中自我进化。直观地说&#xff0c;我们…...

wordpress 自动分享/宁波seo运营推广平台排名

一、 Hibernate介绍 Hibernate是基于对象/关系映射&#xff08;ORM&#xff0c;Object/Relational Mapping&#xff09;的一个解决方案。ORM方案的思想是将对象模型表示的对象映射到关系型数据库中&#xff0c;或者反之。Hibernate目前是ORM思想在Java中最成功、最强大的实现。…...

关于免费制作网页的网站/百度域名购买

1、添加用户&#xff0c;首先用adduser命令添加一个普通用户&#xff0c;命令如下&#xff1a; #adduser tommy //添加一个名为tommy的用户 #passwd tommy //修改密码 Changing password for user tommy. New UNIX password: //在这里输入新密码 Retype new UNIX password: //再…...

男装商城网站建设/惠州seo计费管理

题目 有个数列&#xff0c;你要维护它&#xff0c;支持区间赋值、区间加一、区间询问出现次数大于等于p∗(r−l1)p*(r-l1)p∗(r−l1)的数有哪些。&#xff08;题目的那个除以100100100就省掉了哈&#xff09; 思考历程 总感觉这题不好直接用数据结构来搞。 然后就想到了分块&…...

苏州专业网站建设开发公司/seo工具包

写在前面 博文安排顺序如下 1.写在前面 2.源码 3.思路 4.相关知识 该小程序是对Date类及其相关类的复习 要求如下图&#xff1a;实现可视化日历 实现思路 1.先从键盘输入指定格式的字符串(str)2.将字符串用格式转换类转换成日期( Date date format.parse(str) )3.将日期设置成…...

惠州专业网站制作公司/seo营销技巧

中国银联是经同意&#xff0c;批准设立的中国银行卡组织。成立以来&#xff0c;顺应国家社会经济发展和人民群众用卡需要&#xff0c;牢记历史使命&#xff0c;履行社会责任&#xff0c;充分发挥银行卡组织的职能作用&#xff0c;推动我国银行卡产业实现了快速、健康发展&#…...

网站开发会议议程范文/营销传播服务

设计稿尽量提供偶数切图之前预先定义好标准(常用标签的样式,公用样式)上下文元素之间尽量保持同级更新不频繁的使用背景图片(logo)先做需求确定部分内容(头/尾部)设置颜色尽量不使用英文,使用色码时多用3位,少用6位转载于:https://blog.51cto.com/suyanzhu/1878191...