奇技淫巧第7期

news2024/9/20 10:41:15

终于腾出时间了,现在对3~11月份知识点作总结。
这段时间主要在写论文,跑案例分析。暑期的比赛另写了一个小系列,这里就不再写了。
总的来说,零散的代码知识点在积累几个月后还是要汇总回顾一下的。

文章目录

  • Python 歪门邪道
    • fnmatch
    • shutil.copy
    • append & extend
    • set 对象的运算
    • subprocess.run()
    • 多线程模块 subprocess
    • f.readlines()
    • return 报错
    • find() 方法
    • round() 函数
    • Typing
      • Optional类
      • List 类
    • networkx
    • 随机抽样
    • pd.read_pickle
    • pandas
    • ASE
    • flake8 初体验
    • pytorch 零碎
      • PyTorch中MSELoss的使用
      • CLR报错
      • 推理报错
      • python tips
  • 化学思考
    • 形成能和结合能的辨析
    • MDS多维尺度分析
    • 高斯关键词:xqc和qc
  • 科研写作和绘图
    • typora
    • 科研论文时态选择
    • 科研绘图
      • matplotlib
      • seaborn
    • latex
      • 出版社格式要求
        • ACS
        • elsevier
        • RSC
      • 字体族
      • bibtex报错
      • 换行
      • 表格
      • latexindent
      • latexdiff
      • 标题
      • 图片
      • 波浪线
      • latex tips
  • windows
    • 记事本快捷键
    • 启动任务管理器
    • 修改文件默认打开方式
  • 其他
    • 统计学三大系数
    • docker
    • 搜索路径
    • pycharm
      • 退出vim光标模式
      • 退出命令行状态
      • tips

Python 歪门邪道

fnmatch

http://c.biancheng.net/view/2543.html
在数据处理操作中,只需要使用简单的通配符就能完成文件名的匹配,则使用 fnmatch 模块是不错的选择。
但比正则表达式弱一些

shutil.copy

shutil.copy 能复制的不只有文件,还可以复制文件夹。
此外,对于 shutil 库的安装,经过验证,普通新建环境
conda create -n test001 python=3.8
即可自带 shutil

append & extend

https://www.cnblogs.com/subic/p/6553187.html
二者的区别是,append 将对象整体打包,接入列表的末尾。
extend 将对象看作一个序列,接在原列表的末尾,当然了,前提是,该对象是一个可拆序列

set 对象的运算

set 是python中类似哈希表的对象。
使用 add(), remove() 方法可以轻松添加或去除元素
此外,集合间的运算,也可以由 & | - ^ 等符号实现
不常用的是
| :求并集,
^:二者并集减去差集

subprocess.run()

相对于 os.system()
subprocess.run() 有一个非常好用的参数:shell
意思是通过shell来执行命令行
比如:
taskset -c 1-10 xtb --opt xxx.xyz
这条命令使用 os.system(),xtb运行时只占一个核(CPU1)
如果使用 subprocess.run(shell=True),xtb运行时占用1-10核
注意:
taskset -c 5-8
的时候,
会调用5,6,7,8四个核,两端都是闭区间

多线程模块 subprocess

https://www.jb51.net/article/142787.htm#_label3
上手教程,下面是 demo

import time
import subprocess

print(time.time())
res_1 = subprocess.Popen('echo 1; sleep 5', shell=True)
res_2 = subprocess.Popen('echo 1; sleep 10', shell=True)
res_1.wait()
print(time.time())
print(res_2.poll())
res_2.wait()
print(time.time())
print(res_2.poll())

f.readlines()

python 读取文件
如果一个文件是
--
1
--
f.readlines() 的长度是1
如果一个文件是
--
1

--
f.readlines() 的长度仍然是1
如果一个文件是
--
1

--
f.readlines() 的长度是2

return 报错

python 报错
this code is unreachable
原因:
一个函数最后有了 return,如果在 return 后面再加一句话,程序就不会执行这句话,因为前面都return,算是低级错误啦

find() 方法

str.find(str, beg=0, end=len(string))

使用字符串的 find 方法找到字符串中某字符的位置
如果找到,返回位置;若找不到,则返回 -1
https://www.runoob.com/python/att-string-find.html

round() 函数

python3.5的doc中,文档变成了“values are rounded to the closest multiple of 10 to the power minus ndigits; if two multiples are equally close, rounding is done toward the even choice.” 如果距离两边一样远,会保留到偶数的一边。比如round(0.5)和round(-0.5)都会保留到0,而round(1.5)会保留到2。
https://www.jb51.net/article/189084.htm

一个简单的方法实现如下功能:一组列表中,间隔在x以内的数据认为是同一组数据,如何去冗余呢?
使用round函数,比如说,认为间隔为0.3的数据为同一个数据,a=0.451,b=0.149, round(a/0.3)=2, round(b/0.3)=1,这样就可以把两个数据区分开来了。反之,如果二者间隔在0.3以内,除以0.3的商一致。

Typing

Optional类

Optional[X]等价于Union[X, None]
可选类型,作用几乎和带默认值的参数等价,不同的是使用Optional会告诉你的IDE或者框架:这个参数除了给定的默认值外还可以是None,而且使用有些静态检查工具如mypy时,对 a: int =None这样类似的声明可能会提示报错,但使用a :Optional[int] = None不会。
省流:IDE 能够更好识别 Optional[X] ,并给出提示。对于一些第三方工具,如 mypy ,更加安全。

List 类

from typing import List
https://blog.csdn.net/weixin_46713695/article/details/125032851
List是list的泛型,能够更精确的指定输入参数

networkx

使用networkx可以找到最大连通子图
https://blog.csdn.net/qq_35538296/article/details/122347528

随机抽样

如何用 random 模块进行随机抽样
https://www.cnblogs.com/skuld-yi/p/14583411.html

random.sample(population, k, *, counts=None)

返回序列中不重复的 k 个元素的列表,即无重复随机抽样
counts 可以将 population 中对应位扩充。增大相应比例。
此外,可重复抽样可以由

random.choices(population, weights=None, *, cum_weights=None, k=1)

更多有趣函数,请看:https://www.cnblogs.com/skuld-yi/p/14583411.html

pd.read_pickle

报错
AttributeError: Can’t get attribute ‘_unpickle_block’ on <module ‘pandas._libs.internals’ from ‘/home/mkliu/anaconda3/lib/python3.8/site-packages/pandas/_libs/internals.cpython-38-x86_64-linux-gnu.so’>
原因是换了一个环境,pandas 版本和 to_pickle 时的版本不一致,换回来即可

pandas

data=data.drop(range(20, 500)) #删除特定行
data = data[range(1, 11)] #索引特定列,不是很合法
data=data.drop('rel_e', axis=1) #删除特定列

axis=0, 1 分别对应行和列

ASE

一个 ASE 并行优化的脚本 (OC)

shutil.copy(opt_file)
subprocess.Popen('nohup taskset -c 1-10 python opt_file.py >>my.log 2>&1 &')
if idx % 5 == 0:

res_list = [None] * 2
res_list[0] = subprocess.Popen('echo 1; sleep 5', shell=True)
res_2 = subprocess.Popen('echo 1; sleep 10', shell=True)

核心思路是:
并行任务数N确定以后,初始化一个长度为N的None列表,同时开启N个子进程
将待优化文件提前准备好,和待优化分子文件一并放入新文件夹内,使用命令行Popen执行该优化文件
待优化文件内通过os.getcwd()感知分子构型,优化器、优化步数上限和力收敛判据通过直接修改待优化文件达到目的
大概是
os.path.exists()检查文件是否存在,如果不存在则新建优化文件(建议优化文件的名称为重要参数)
通过逐项检查res_list判断是否应补充新进程,建议适时插入time.sleep(1)
需要注意:
前提是所有构型优化成功,异常情况需要考虑异常捕获。(不然一个优化失败的构型会一直占着进程位)

flake8 初体验

python装上flake8以后
在项目目录下,对应python环境下,输flake8,可弹出代码不规范之处
.\src\autosteper\parser.py:90:89: E501 line too long (107 > 88 characters)
.\src\autosteper\parser.py:91:89: E501 line too long (113 > 88 characters)
相关设置在项目 setup.cfg 文件里
(我本来以为会自动帮忙规范代码,谁知道只是一个静态的提醒,仔细一想,好像也没办法动态改代码)

pytorch 零碎

PyTorch中MSELoss的使用

虽然MSE意思是均方根误差,但pytorch底层实现时,需要依赖reduction按钮调节最后用到的MSELoss。只有当reduction='mean’时,才是真正意义上的均方根误差

https://www.cnblogs.com/amazingter/p/14044236.html
reduction=‘none’:求所有对应位置的差的平方,返回的仍然是一个和原来形状一样的矩阵。

reduction=‘mean’:求所有对应位置差的平方的均值,返回的是一个标量。

reduction=‘sum’:求所有对应位置差的平方的和,返回的是一个标量。

CLR报错

https://blog.csdn.net/weixin_43002433/article/details/104969477
CyclicLR的参数cycle_momentum默认是True,优化器必须支持momentum,如果不支持的话,初次使用时会报错。

推理报错

https://blog.csdn.net/iamjingong/article/details/85308600
Attempting to deserialize object on CUDA device 1 but torch.cuda.device_count() is 1.
原来模型是两个gpu训练的,现在只用一个做推理,因此报错,加一个参数即可

model = torch.load(model_path, map_location='cuda:0')

python tips

A = {‘1’: 1} 是 dict
A = {‘1’: 1}, 是 turple
二者只差一个英文 ,


化学思考

形成能和结合能的辨析

http://muchong.com/html/200904/1294296.html
这两个概念很容易混淆
形成能,我的理解,是一个偏化学的概念,因为它与化学反应的焓变或内能变化有关,因为A(晶)+B(晶)=AB(晶),这里强调的是旧物质消失和新物质生成的化学反应,而状态是给定的,所以说是偏化学的。
结合能,我的理解,是一个偏物理的概念。虽然对于多原子晶体,这里面也有新旧物质的变化,但它更强调的是状态的变化。

单从能量区别上,结合能相当于这样一个过程的总能量变化:A(孤原)+B(孤原)=AB(晶体),可见它与形成能是有联系而又有区别的。
其中相差了这两个反应:A(孤原)=A(晶), B(孤原)=B(晶)

省流:
形成能计算时按照:
A(晶)+B(晶)=AB(晶)
或者
A(单质分子)+B(单质分子)=AB(新分子)
(强调新物质生成和旧物质的消失)
而结合能计算时:
A(孤原)+B(孤原)=AB(晶体)

MDS多维尺度分析

全称 multidimensional scaling,是一种降维算法
化学信息学中有 soap 等描述符来区别不同分子,或者作为神经网络输入进行能量预测。
随着分子体系的增加,这种描述符可能会存在维数爆炸的情况。
因此在进行聚类操作时可以使用 MDS 等降维工具降低计算量。
MDS 的优点在于,可以保持样本点在高维空间的距离不变。所以,只能在样本点数量较小时维持这一特性。

高斯关键词:xqc和qc

qc指,采用更容易收敛的线性搜索(远)+Newton-Raphson(近)
这种策略更容易收敛,可信度较高,但是速度比较慢
xqc指,第一次优化未收敛时,采用 qc 算法使其收敛,默认最大新增步数为32
yqc是新算法,更更更容易收敛。。。。

科研写作和绘图

typora

脚注在少数派的文章中也很常见,即某段话结尾右上角标有数字标记,页面底部进行注释的写法。你可以在需要插入脚注标号的位置写 [^ number ] ,再在下方通过 [^ number ]: 在文档中插入脚注。注意不要遗漏了脚注编号 number 前后的空格。
typora的脚注前后直接需要严格对应,有前就得有后,不然导出时不起效。
(如果前是ref,导出时会自动赋1)
https://sspai.com/post/54912
使用 typora 可以草拟论文草稿,脚注是一个快速替代参考文献的选择


typora 或 latex 里打angstrom
$\AA$
非斜体:
$\rm \AA$
latex 需要加上 siunitx


markdown实现页内跳转
https://blog.csdn.net/qq_40491534/article/details/123483784
依托 HTML 实现的


https://markdown.jianguoyun.com/2827.html
markdown里隐藏内容
<details><summary>title</summary>hided contents</details>
无法用小标题


科研论文时态选择

在这里插入图片描述

科研绘图

  1. python matplotlib 以 svg 格式保存文件
  2. PPT 进行 后处理
  3. 对该 PPT 进行备份
  4. 删除 PPT 中除待保存页外的其他所有页
  5. 调整 PPT 大小至刚好符合出版社要求为止
  6. 另存为 PDF 格式
  7. latex 引入

此外,直接从PPT导出svg会导致某些信息量过大的图失真。一种方法是先截图,再提高截图分辨率(在线网站等),最后将png格式转化为svg格式,最后再将svg格式转化为pdf格式
比较麻烦的是图片中字体的设定,使用 Arial 字体能够满足大部分出版社的要求。
方法1:
latex 打印特定字体。
\usepackage{fontspec}
\setmainfont{Arial}
然后 xelatex 编译
方法2:
matplotlib 打印特定字体
方法3:
第三方软件,比如妈咪叔开发的 https://www.latexlive.com/ 进行图片标题绘制

matplotlib

https://matplotlib.org/stable/gallery/lines_bars_and_markers/linestyles.html
使用 matplotlib linestyle 绘制折线图等


https://blog.csdn.net/nebula1008/article/details/116954695
改变matplotlib图例的大小和位置
图例位置的调整:
https://blog.csdn.net/Wannna/article/details/102751689

plt.legend(prop={'size': 4}, loc='lower right')

在这里插入图片描述


设置双y轴
https://www.cnblogs.com/Atanisi/p/8530693.html


https://blog.csdn.net/weixin_48419914/article/details/121672210
使用plt.xticks()改变x轴坐标,标签


https://blog.csdn.net/weixin_48435461/article/details/121182506
ax.text 或者 plt.xticks 中加一个参数 rotation 可以实现刻度的 旋转
默认是 degree


https://blog.csdn.net/A_Z666666/article/details/81165123
重要!!!!!!
Matplotlib,设置坐标刻度大小,字体/设置图例大小及字体/设置纵横坐标名称及字体及大小
文中脚本可以直接调用


https://blog.csdn.net/weixin_39591031/article/details/119902373
使用 tight_layout() 调整多子图的间距


seaborn

https://seaborn.pydata.org/tutorial/color_palettes.html
调配热图的颜色
seaborn 调色盘参数,as_cmap,意思是 as continuous mapping
因为Seaborn默认是6个离散的颜色,如果 as_cmap=True ,颜色会按照数值大小来
使用

cmap = sns.light_palette((260, 75, 60), input="husl", as_cmap=True)

可以调出漂亮的淡蓝色

latex

出版社格式要求

ACS

https://zhuanlan.zhihu.com/p/498031371
字体格式要求(无衬线字体)
Question: “Which font looks best in a scientific figure?”
Answer: “Arial or Helvetica, always.”
此外,acs要求字体不得小于5point,这个point是PPT字体的默认单位


图片格式要求:
ACS 图片要求单栏宽 8.255cm,双栏17.78cm
那么如何确定某一张图片的实际大小呢?
拖动图片到ppt,100%原视图下即为实际大小
可以画一条线测量
PPT里的统一单位是厘米
(matplotlib里的figsize默认单位是英寸)
在这里插入图片描述


TOC
宽 8.25cm 高 4.45cm


elsevier

https://blog.csdn.net/henielh/article/details/107233551
单栏图 8~9cm
双栏图 11.4~14cm
双栏图 17.1~19cm
最佳字体大小为8磅。
所有线条应该不小于0.25磅(0.99mm)
nature要求,elsevier没有明确要求。
TOC:宽 13cm 高 5cm

RSC

https://www.rsc.org/journals-books-databases/author-and-reviewer-hub/authors-information/prepare-and-format/figures-graphics-images/#chemicalstructures

单栏宽 8.3cm
双栏宽 17.1cm
高度低于 23.3cm

TOC
宽8cm
高4cm

字体族

https://blog.csdn.net/wangmeitingaa/article/details/88778183
常用的是:
\textrm{} :Roman Family 罗马字体
\textsf{}:Scan Serif Family 无衬线字体
\texttt{}:Typewriter Family 打字机字体
\textbf{}:字体加粗
\textit{}:斜体

bibtex报错

Undefined control sequence.
<write> …subitem}{@mcitecorrectmaxwidthsubitem
latex 报错
原因是 demo 的 bib file 里面没有引用,随机加上一条后即可正常使用

后分析:Undefined control sequence. 一般是未引用相关的包
前面加上 \usepackage{natbib} 即可


Package natbib Warning: There were undefined citations.
是因为没有加参考文献引用格式
https://blog.csdn.net/sinat_29760727/article/details/107963173
这个warning无关紧要,有的杂志不要求具体的bibstyle


换行

https://blog.csdn.net/DUTwangtaiyu/article/details/114281954
单纯换行:\
换行+缩进:\par
公式换行+对齐:\\ + & (&放在=前面)

表格

latex 表格入门
https://blog.csdn.net/m0_55746113/article/details/122783407


报错
Extra alignment tab has been changed to \cr,原因是:https://blog.csdn.net/qq_31225201/article/details/123988116,声明的列数和实际列数没有吻合


快速搞定表格:
方法1:
使用 typora 快速搭建表格,再另存为 latex
方法2:
使用在线网站 https://www.tablesgenerator.com/


https://zhuanlan.zhihu.com/p/337457317
使用 \resizebox{\linewidth}{!}{ 可以自动调整表格大小
也可以用 \begin{tabular}{p{1cm}|p{9cm}} 调节长宽


表格的标题是放在表格上方还是表格下方?由关键词 caption \begin{tabular} 决定
https://www.cnblogs.com/-yhwu/p/15591845.html
latex表格caption换位置


latexindent

https://blog.csdn.net/qq_27033267/article/details/109263626
使用 latexindent 自动规范 latex 文件

latexdiff

latexdiff old.tex new.tex >output.tex --exclude-textcmd=“section,subsection”
输出两个latex文件的差别

标题

https://zhuanlan.zhihu.com/p/464244924
一共七级标题
part、chapter、section、subsection、subsubsection、paragraph、subparagraph

图片

https://zhuanlan.zhihu.com/p/147952252?from_voters_page=true
解决图片过大的问题
[width=0.95\textwidth] 是0.95倍页宽


https://blog.csdn.net/xiaofalu/article/details/81274504
latex 绘图 [!htp] 参数的含义
简单说就是尽量放在图片代码出现的位置(!h)
如若无法放置,将顺延到下一页的顶部(t)
(p)表示允许图片放置在拥有一个浮动对象的页面里
其实还有(b)图片放置在下一页的底部
一般来说,单个一个 h 不一定起效,更常见的情况是 htbp 联用


波浪线

https://blog.csdn.net/robert_chen1988/article/details/78004436

  1. 数学模式下
    $\sim$
  2. 文字模式下
    \textasciitilde

然而,真正的波浪线在 latex 里不代表波浪线,只是强制空格的意思,是一种较老的用法。
https://blog.csdn.net/u012510648/article/details/106945857

latex tips

latex 里环境中加 * 表示不对公式或章节编号

\begin{equation*}
\end{equation*} % 不对公式编号
\section*{} % 不对章节编号

重要!!!!!!!!!!!!!!!!
vscode里,鼠标放在引入的包上面,会出现 documentation 的提示
点击即可看到对应包的文档


markdown 格式下的 公式复制粘贴到latex里不能用,可能是编码问题,但是用typora转成latex,再修改具体格式就又可以了


latex 交叉链接突然失效
重启电脑,重新编译
恢复正常。


小细节:句末引用参考文献时,\cite 放在句号前和句号后的效果是一样的


latex 里打出 et al,是套用拉丁模板
\latin{et al.}


查表之西班牙人名
https://blog.csdn.net/panbaoran913/article/details/126794955


SI 的小标题、图片、表格等需要在编号前加 S
使用 renew command 完成
https://www.stat.berkeley.edu/~paciorek/computingTips/Customizing_numbering_pages.html


windows

记事本快捷键

https://jingyan.baidu.com/article/295430f1f64ea00c7e00501f.html
简记:
ctrl + G 转到第几行
F3 = Ctrl + F 查找
Ctrl + H 替换
F5:在记事本直接记录显示当前系统时间
Ctrl+Home:回到页首,也就是记事本的第一行第一列
Ctrl+End:回到页尾,也就是记事本的最后一行最后一列
Home:光标移到行首
End:光标移到行尾
大部分都和常用快捷键一致

启动任务管理器

https://www.zhihu.com/question/500024314
右键点击 win 图标
CTRL + Shift + Esc 也可以
比较酷的办法是命令行启动,win+R, 然后 taskmgr

修改文件默认打开方式

https://jingyan.baidu.com/article/54b6b9c03ca74b6c583b47ab.html
方法1:
右键点击,再按照引导进行修改。
但是这种方法不一定有效,此时用方法2:
删除userchoices,在openwithlist里面把其余不相关的删掉,修改default值为默认程序

其他

统计学三大系数

https://zhuanlan.zhihu.com/p/34717666
Pearson积差相关系数:用于量度两个变量X和Y之间的线性相关。
Spearman秩相关系数:使利用两变量的秩次大小作线性相关分析。
Kendall秩相关系数: 用于反映分类变量相关性的指标。
1000个异构体,xtb算和dft算,得出1000个浮点数能量。
Pearson 是这1000个能量间的相关性
Spearman 是1000个能量的排序的相关性
1000个人,按肥瘦分10组,按收入分8组
收入和肥瘦间的相关性用Kendall衡量(似乎是这样,有空再深入研究)

docker

https://blog.csdn.net/gf19960103/article/details/109489632
Docker容器化安装Python、第三方包、制作镜像、内网部署
重要文章!!!!!!!!


https://blog.csdn.net/u013641234/article/details/88770647
解决 imagePulloff 的报错,可以在yaml里加上image pull policy

搜索路径

https://blog.csdn.net/cnds123/article/details/101546889
终端里找到python site-packages的路径


在搜索路径的表头添加一个空的字符串,即可实现索引同级、下级目录里的module,前提是有 __init__.py 文件
在这里插入图片描述


pycharm

退出vim光标模式

按一下insert键即可

退出命令行状态

打开pycharm终端的时候处于命令行状态
conda activate 不起作用
提升显示换成 CALL conda.bat activate xxx 即可
(也可以试一下 conda activate dflow

另一种方法是先换成base环境 (conda init) ,然后再开一个新的shell,此时自动就是base环境下的终端了

tips

  1. 首次配置conda的时候不要挂vpn
  2. formular是公式的,形容词。formula是公式,名词。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot SpringBoot 开发实用篇 3 测试 3.7 匹配响应体【JSON】

SpringBoot 【黑马程序员SpringBoot2全套视频教程&#xff0c;springboot零基础到项目实战&#xff08;spring boot2完整版&#xff09;】 SpringBoot 开发实用篇 文章目录SpringBootSpringBoot 开发实用篇3 测试3.7 匹配响应体【JSON】3.7.1 问题引入3.7.2 匹配响应体【JSON…

力扣刷题day50|739每日温度、496下一个更大元素 I

文章目录739. 每日温度暴力思路单调栈思路什么时候用单调栈&#xff1f;解题思路496. 下一个更大元素 I思路单调栈739. 每日温度 力扣题目链接 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对…

[Games 101] Lecture 11-12 Geometry 2 (Curves and Surfaces)

Lecture 11-12 Geometry 2 (Curves and Surfaces) Curves Bzier Curves 贝塞尔曲线 使用一系列的控制点定义某个曲线&#xff0c;控制点定义曲线满足的一些性质可以定义出唯一的曲线&#xff0c;从 p0p_0p0​ 开始&#xff0c;p3p_3p3​ 结束 de Casteljau Algorithm 绘制贝…

Linux16 ---共享内存、操作函数、使用示例

一、共享内存 1、 共享内存为多个进程之间共享和传递数据提供了一种有效的方式。共享内存是先在物理内存上申请一块空间&#xff0c;多个进程可以将其映射到自己的虚拟地址空间中。 所有进程都可以访问共享内存中的地址&#xff0c;就好像它们是由 malloc 分配的一样。如果某…

(二)Easyexcel 的使用(读取数据到map集合中)

前面讲述了使用实体类的方式绑定excel表头的方式进行读取和写入操作&#xff0c;是比较简单的&#xff0c;那么由于表头可能会变&#xff0c;那么就不能使用绑定实体类的方式进行了&#xff0c;于是搜索百度一番&#xff0c;借鉴别人的博客&#xff0c;使用map集合的方式进行读…

一文详解Cookie 和 Session 会话技术

目录 Cookie Session 分布式下Seesion的不足 Cookie 定义&#xff1a;Cookie是服务器发送到浏览器&#xff0c;并保存在浏览器端的一小块数据。浏览器下次访问该服务器时&#xff0c;会自动携带该数据块&#xff0c;将其发送给服务器。 作用&#xff1a;由于HTTP是无状态的&…

tomcat修改默认端口详细步骤(包含运行测试)

前言&#xff1a; 在tomcat端口被占用或者需要把默认的8080端口换成其他的端口&#xff0c;就可以修改默认端口。 一、修改步骤 1.打开tomacat的文件位置--conf目录 2.找到server.xml右键打开方式选择记事本打开 3.找到这个文件的Connector port "8080" 大概位…

TVM 中文站正式上线!最全机器学习模型部署「参考书」它来了

内容一览&#xff1a; 近日&#xff0c;由 MLC 社区志愿者共同翻译校对的 TVM 中文文档正式发布&#xff0c;现已托管至超神经官网 Hyper.AI。 关键词&#xff1a; TVM 开源 机器学习编译器 本文首发自微信公众号&#xff1a;HyperAI超神经 面世5年&#xff0c;TVM成备受追捧的…

tensorflow2.0 学习笔记:一、神经网络计算

mooc课程Tensorflow2.0 笔记 人工智能三学派 行为主义&#xff1a;基于控制论&#xff0c;构建感知-动作控制系统&#xff08;自适应控制系统&#xff09;符号主义&#xff1a;基于算数逻辑表达式&#xff0c;求解问题时先把问题描述为表达式&#xff0c;再求解表达式&#x…

AMD EPYC(霄龙)Genoa服务器 | 综合评测

9004 | EYPC | 9654P | AMD 9654 | 7703 | Genoa | Intel 当生命科学、医药研发、东数西算、数据分析、数据挖掘、算力、数据中心、智算中心、遥感测绘、地质遥感等场景逐渐成熟&#xff0c;上层应用场景改变了底层硬件基础&#xff0c;计算、存储、网络架构的迭代升级和调整融…

win11连接共享打印机错误0x00000709

连接共享打印机出现错误0x00000709是常见的打印机错误了&#xff0c;但是用户升级到win11系统之后还遇到了同样的问题&#xff0c;这该如何解决&#xff1f;今天小编就给大家带来详细的解决办法&#xff0c;一起来看看。 方法一、卸载补丁 Win10卸载有问题的补丁KB5006667或KB5…

java项目-第145期ssm汽车在线销售系统-java毕业设计_计算机毕业设计

java项目-第145期ssm汽车在线销售系统-java毕业设计_计算机毕业设计 【源码请到资源专栏下载】 今天分享的项目是《ssm汽车在线销售系统》 该项目分为2个角色&#xff0c;管理员和用户。 用户可以浏览前台,包含功能有&#xff1a; 首页、车辆信息、新闻资讯、留言反馈、我的、跳…

OpenCV图像处理——直方图

总目录 图像处理总目录←点击这里 十二、直方图 12.1、原理 cv2.calcHist(images,channels,mask,histSize,ranges) images: 原图像图像格式为 uint8 或 float32。当传入函数时应 用中括号 [] 括来例如[img]channels: 同样用中括号括来它会告函数我们统幅图 像的直方图。如果…

电容笔哪个品牌好?十大电容笔知名品牌

如今&#xff0c;电容笔越来越受欢迎&#xff0c;性能也越来越好。如何挑选出一款物美价廉的电容笔&#xff0c;就成了一件非常头疼的事情。许多人将其用于日常生活&#xff0c;所以人们都在寻找更好、更经济的电容笔。那么&#xff0c;电容笔的牌子是最便宜、最值得我们入手呢…

骁龙AR2平台解析:分布式架构开启轻量化AR眼镜新时代

在今天的骁龙峰会2022上&#xff0c;高通面向轻量化AR眼镜推出了专属SoC&#xff1a;第一代骁龙AR2平台&#xff0c;这套方案将骁龙XR1、骁龙XR2的单片式方案&#xff0c;改为多芯片分布式SoC方案&#xff0c;同时融合了分离式渲染&#xff0c;实现一整套的AR/VR与智能手机、PC…

Leetcode 学习记录 数组和字符串 习题2

搜索插入位置 给定一个有序数组nums&#xff0c;数组中没有重复元素。搜索指定元素target在数组中插入位置。题目说如果target存在于数组中&#xff0c;直接返回index&#xff0c;如果不在返回应该插入的位置。要求在O&#xff08;logn&#xff09;的时间复杂度内完成。 因为…

DevOps Master课程总结:学习没有捷径(送DevOps安灯正确方法)

​1.摆正学习态度 “活到老&#xff0c;学到老”&#xff0c;学习是贯穿所有人一生的一件事情 。俗话说&#xff1a;“师傅领进门,修行在个人。”的意思是&#xff1a;有了师傅的指教&#xff0c;学生的技艺可以进步很快&#xff0c;但是&#xff0c;单单靠师傅是不够的&#x…

【线程】多线程编程

目录 一、概念 二、线程函数 1.pthread_create 2.pthread_exit 3.pthread_join 4.pthread_cancel 三、线程的使用 1.线程的基本操作 2.理解并发运行 一、概念 线程是程序中完成一个独立任务的完整执行序列&#xff0c;即一个可调度的实体。根据运行环境和调度者的身…

Maven基础概念【仓库和坐标】这篇看完懂了

Maven下载 官网: Welcome to Apache Maven 下载地址: Maven – Download Apache Maven 01 仓库&#xff1a; 仓库:用于存储资源&#xff0c;包含各种jar包 ​ ​ 仓库&#xff1a;用于存储资源&#xff0c;包含各种jar包 仓库分类&#xff1a; ♦ 本地仓库&#xff1a;自己电…

4_Git

一、Git学习网站 廖雪峰大神 Git 教程Git-flow 包教不包会阮一峰-常用 Git 命令清单 二、Git简介 1.Git是什么 分布式版本控制系统 2.版本控制 3.集中式 vs 分布式 4.Git简史 5.工作区、暂存区、版本库 流程 工作区&#xff1a;写代码 --> git add --> 暂存区 --…