盘古大模型实战
0 前言
前一段时间,在学习人工智能的同时,也去了解了一下几乎是作为人工智能在气象上应用的一大里程碑式的研究成果-华为盘古气象大模型。正是盘古大模型的出现,促使天气预报的未来发展方向多了个除天气学方法、统计学方法、数值预报方法之外的AI方法。故写一篇博客来对之前的一部分实践内容进行总结。
1 盘古大模型
1.1初识盘古
盘古气象大模型是来自华为云的研究人员提出了一种新的高分辨率全球AI气象预报系统。盘古气象大模型是首个精度超过传统数值预报方法的AI方法,1小时-7天预测精度均高于传统数值方法(欧洲气象中心的operational IFS),同时预测速度提升10000倍,能够提供秒级的全球气象预报,包括位势、湿度、风速、温度、海平面气压等。盘古气象模型的水平空间分辨率达到0.25∘×0.25∘ ,时间分辨率为1小时,覆盖13层垂直高度,可以精准地预测细粒度气象特征。作为基础模型,盘古气象大模型还能够直接应用于多个下游场景。例如,在热带风暴预测任务中,盘古气象大模型的预测精度显著超过欧洲气象中心的高精度预报(ECMWF HRES Forecast)结果。
盘古大模型使用的数据,包括垂直高度上13个不同气压层,每层五种气象要素(温度、湿度、位势、经度和纬度方向的风速),以及地球表面的四种气象要素(2米温度、经度和纬度方向的10米风速、海平面气压)。
基于复杂多变的气象背景,研究者提出3D Earth-Specific Transformer。其主要思想是使用一个视觉transformer的3D变种来处理复杂的不均匀的气象要素。由于气象数据分辨率很大,因而相比于常见的vision transformer方法,研究人员将网络的encoder和decoder减少到2级(8个block),同时采用Swin transformer的滑窗注意力机制,以减少网络的计算量。
同时,气象要素数据对应的经纬度网格是不均匀的,而不同的要素在不同纬度、高度的分布也是不均匀的。对这些不均匀性的建模,有利于学习气象数据背后潜藏着的复杂物理规律,如科里奥利力等。为此,研究者在每一个transformer模块中引入和纬度、高度相关的绝对位置编码来学习每一次空间运算的不规则分量。这样改动后的transformer模块,被称为3D Earth-Specific Transformer。
为了缓解迭代误差,研究者提出一个简单而有效的策略。研究人员训练了4个不同预报间隔的模型,分别为1小时间隔、3小时间隔、6小时间隔、24小时间隔。进而,研究人员使用贪心算法调用这些模型,使得预测特定时间气象状况的迭代次数最小。例如,对于24小时预测,只需要调用一次24小时间隔的模型;而对于23小时预测,则需要调用三次6小时预报,一次3小时预报和两次1小时预报。通过使用多个不同时间间隔模型捕捉不同时序关系,盘古气象大模型不仅减少了迭代误差,并且避免了由递归训练带来的训练资源消耗。
1.2相关论文与博客
1.Nature
Accurate medium-range global weather forecasting with 3D neural networks, Nature, Volume 619, Pages 533–538, 2023.
2.arXiv 预印本
Pangu-Weather: A 3D High-Resolution Model for Fast and Accurate Global Weather Forecast, arXiv preprint: 2211.02556, 2022.
盘古天气:快速准确的全球天气预报的 3D 高分辨率模型
2 模型下载
盘古的开发者团队将参考代码与需要准备的库与说明都在开源的GitHub项目有所说明
GitHub链接:
GitHub - 198808xc/Pangu-Weather: An official implementation of Pangu-Weather
在这里,我们可以用git把项目clone下来。
Git地址:https://github.com/198808xc/Pangu-Weather.git
在Git中运行以下内容:
git clone https://github.com/198808xc/Pangu-Weather.git
同时 ,盘古提供的四个时段的预测模型(3h、6h、12h、24h)的模型也可以在GitHub上下载,或点击以下链接(Git中的链接):
Please download the four pre-trained models (~1.1GB each) from Google drive or Baidu netdisk:
The 1-hour model (pangu_weather_1.onnx): Google drive/Baidu netdisk
The 3-hour model (pangu_weather_3.onnx): Google drive/Baidu netdisk
The 6-hour model (pangu_weather_6.onnx): Google drive/Baidu netdisk
The 24-hour model (pangu_weather_24.onnx): Google drive/Baidu netdisk
3 数据下载
3.1ERA5再分析数据
ECMWF(European Centre for Medium-Range Weather Forecasts)的再分析资料ECMWF Reanalysis v5(ERA5)数据。
ERA5再分析资料的下载地址:ERA5 hourly data on pressure levels from 1940 to present (copernicus.eu)
ERA5 hourly data on single levels from 1940 to present (copernicus.eu)
3.2ECMWF集合预报数据
TIGGE 数据集(国际全球大集合)由 13 个全球 NWP 中心自 2006 年 10 月起12 的集合预报数据组成。它是 THORPEX 交互式全球大集合的一部分,是世界气象组织于 2005 年 3 月启动的一项研究计划。
本篇使用TIGGE (The International Grand Global Ensemble)提供的集合预报数据,与盘古气象大模型的预测结果进行对比验证。
数据的下载网址如下:
https://apps.ecmwf.int/datasets/data/tigge/levtype=sfc/type=fc/
4 数据处理
在进行盘古模型的训练之前,我们首先需要知道输入数据的要求。
地表:输入数据分为4个,分别是海表面气压,10m经纬向风和2m温度
高度层:位势,比湿,温度,经纬向风
surface: 4 surface variables (MSLP, U10, V10, T2M)
upper:(Z, Q, T, U and V) 13levs
(1000hPa, 925hPa, 850hPa, 700hPa, 600hPa, 500hPa, 400hPa, 300hPa,250hPa, 200hPa, 150hPa, 100hPa and 50hPa)
721*1440 latitude*longitude
在官网选择好所需的ERA5数据之后,盘古的开发者团队在开源的GitHub项目上对数据类型有所强调,只能输入”.npy”格式数据,且在输入模型时要定义为float.32格式,所以我们要对下载好的数据进行进一步的处理。
代码
代码分为两个部分,一个是处理高度层(upper)数据为npy格式,一个是处理地表数据(surface)到npy格式。
第一部分
import xarray as xr
import numpy as np
import os
df=xr.open_dataset(r"D:\Pangu-Weather-ReadyToGo\Test-Data\mslp-10mU-10mV-2mT-2024.08.00.nc")
time_list=np.array(df.valid_time)
#(MSLP, U10, V10, T2M in the exact order)
save_dir="D:\Pangu-Weather-ReadyToGo\Test-Data\surface_data"
for i in range(len(time_list)):time = time_list[i]msl = np.expand_dims(df.msl.loc[time, :, :], 0)u10 = np.expand_dims(df.u10.loc[time, :, :], 0)v10 = np.expand_dims(df.v10.loc[time, :, :], 0)t2m = np.expand_dims(df.t2m.loc[time, :, :], 0)res_array = np.concatenate([msl,u10, v10, t2m], axis=0)strname=f'mslp-10mU-10mV-2mT-{str(time)[:-16]}'+'.npy'save_path = os.path.join(save_dir, strname)np.save(save_path, res_array)print(strname,"saved successfully")
第二部分
import xarray as xr
import numpy as np
import os
df=xr.open_dataset(r"D:\Pangu-Weather-ReadyToGo\Test-Data\Z-Q-T-U-V-13levs-2024.08.00.nc")
time_list=np.array(df.valid_time)
#(5,13,721,1440)
#(Z, Q, T, U and V in the exact order),
# 13 pressure levels (1000hPa, 925hPa, 850hPa, 700hPa, 600hPa, 500hPa,
# 400hPa, 300hPa, 250hPa, 200hPa, 150hPa, 100hPa and 50hPa in the exact order)
# print(df.pressure_level)
print(df)
save_dir=r"D:\Pangu-Weather-ReadyToGo\Test-Data\upper_data"
for i in range(len(time_list)):time = time_list[i]z = np.expand_dims(df.z.loc[time, :, :], 0)q = np.expand_dims(df.q.loc[time, :, :], 0)t = np.expand_dims(df.t.loc[time, :, :], 0)u = np.expand_dims(df.u.loc[time, :, :], 0)v = np.expand_dims(df.v.loc[time, :, :], 0)res_array = np.concatenate([z,q,t,u,v], axis=0)strname=f'z-q-t-u-v-{str(time)[:-16]}'+'.npy'save_path = os.path.join(save_dir, strname)np.save(save_path, res_array)print(strname,"saved successfully")
以上代码将下载的包含多个时间步的nc数据分割为逐个时间步的npy。
5 模型运行
这里以24h的预测模型为例。注意:需要写好下载的预测模型路径、数据读取路径和数据输出路径。
import os
import numpy as np
import onnx
import onnxruntime as ort
#-------------以下是数据要求-----------
'''
surface: 4 surface variables (MSLP, U10, V10, T2M in the exact order)
upper:(Z, Q, T, U and V) 13levs
(1000hPa, 925hPa, 850hPa, 700hPa, 600hPa, 500hPa, 400hPa, 300hPa,250hPa, 200hPa, 150hPa, 100hPa and 50hPa
721*1440 latitude longitude
initial fields of at 12:00UTC, 2018/09/27.
Note that ndarray (.astype(np.float32)), not in double precision.
'''
# The directory of your input and output data
input_data_dir1 = r"D:\Pangu-Weather-ReadyToGo\Test-Data\surface_data"
input_data_dir2 = r"D:\Pangu-Weather-ReadyToGo\Test-Data\upper_data"
output_data_dir = r"D:\Pangu-Weather-ReadyToGo\Test-Data\output_data"
model_24 = onnx.load("D:\Pangu-Weather-ReadyToGo\Pangu-Weather-main\models\pangu_weather_24.onnx")
file_name_surface='mslp-10mU-10mV-2mT-2024-08-06T00.npy'
file_name_surface_out='mslp-10mU-10mV-2mT-2024-08-07T00.npy'
file_name_upper="z-q-t-u-v-2024-08-06T00.npy"
file_name_upper_out='z-q-t-u-v-2024-08-07T00.npy'
# Set the behavier of onnxruntime
options = ort.SessionOptions()
options.enable_cpu_mem_arena=False
options.enable_mem_pattern = False
options.enable_mem_reuse = False
# Increase the number for faster inference and more memory consumption
options.intra_op_num_threads = 1# Set the behavier of cuda provider
cuda_provider_options = {'arena_extend_strategy':'kSameAsRequested',}# Initialize onnxruntime session for Pangu-Weather Models
ort_session_24 = ort.InferenceSession(r"D:\Pangu-Weather-ReadyToGo\Pangu-Weather-main\models\pangu_weather_24.onnx",sess_options=options, providers=[('CUDAExecutionProvider', cuda_provider_options)])# Load the upper-air numpy arrays
input = np.load(os.path.join(input_data_dir2, file_name_upper)).astype(np.float32)
# Load the surface numpy arrays
input_surface = np.load(os.path.join(input_data_dir1, file_name_surface)).astype(np.float32)
# Run the inference session
output, output_surface = ort_session_24.run(None, {'input':input, 'input_surface':input_surface})
# Save the results
np.save(os.path.join(output_data_dir, f'{file_name_upper_out}'), output)
np.save(os.path.join(output_data_dir, f'{file_name_surface_out}'), output_surface)
最后再将模型的输出数据由npy转成nc,标注上输出各个数据的变量名称,完成模型运行。
同样的,可以使用循环的方式迭代调用盘古模型,或者以贪心算法组合调用不同预测时间步的模型,以下以24h迭代预测为例子:
# Load the upper-air numpy arrays
input = np.load(os.path.join(input_data_dir2, file_name_upper)).astype(np.float32)
# Load the surface numpy arrays
input_surface = np.load(os.path.join(input_data_dir1, file_name_surface)).astype(np.float32)
# Run the inference session
input_24, input_surface_24 = input, input_surface
for i in range(run_time):output, output_surface = ort_session_24.run(None, {'input':input_24, 'input_surface':input_surface_24})input_24, input_surface_24 = output, output_surface# Save the resultsfile_name_upper_out = f'z-q-t-u-v-2024-08-0{i+2}T00.npy'file_name_surface_out = f'mslp-10mU-10mV-2mT-2024-08-0{i+2}T00.npy'np.save(os.path.join(output_data_dir, f'{file_name_upper_out}'), output)np.save(os.path.join(output_data_dir, f'{file_name_surface_out}'), output_surface)print(f'2024-08-0{i+2}T00 run successfully')# Your can save the results here
运行结果
用panoply简单挑出模型的其中一个运行结果(2m温度)来看,结果如下:
6 模型结果评估
6.1 简单评估
这里以广东范围的区域平均海平面气压来进行和EC预报数据的简单对比评估,代码如下:
import numpy as np
import xarray as xr
import matplotlib.pyplot as plt
import os
import glob
from scipy import statsdf=xr.open_dataset(r"D:\Pangu-Weather-ReadyToGo\Test-Data\mslp-10mU-10mV-2mT-2024.08.00.nc")
# u10 v10 t2m msl (valid_time, latitude, longitude) float32 71MB ...
var=df.msl.loc['2024-08-02':'2024-08-07',25.5:20,109.5:117.5]
var_mean=np.mean(var,axis=(1,2))/100
print(var_mean)
time=var.valid_time
#ecmwf的预报
file_path=r"D:\Pangu-Weather-ReadyToGo\Test-Data\ECMWF_2024-08-fc.grib"
ds = xr.open_dataset(file_path,engine='cfgrib')
msl_ecmwf=ds.msl.loc['2024-08-01':'2024-08-06',25.5:20,109.5:117.5]
msl_ecmwf=np.array(np.mean(msl_ecmwf,axis=(1,2))/100)
# 设置文件夹路径
folder_path = r"D:\Pangu-Weather-ReadyToGo\Test-Data\output_nc\24h" # 替换为你的文件夹路径# 获取以 "mslp-10mU-10mV-2mT" 开头的所有 .nc 文件
file_list = glob.glob(os.path.join(folder_path, 'mslp-10mU-10mV-2mT*.nc'))#z-q-t-u-v*.nc
# 按照文件名中的日期部分排序(假设日期部分为文件名的第20-29位)
file_list.sort(key=lambda x: x.split('-')[-1].split('.')[0])
print(file_list)
combined_data=[]
# 逐个读取文件并提取数据
for file in file_list:nc_file=xr.open_dataset(file)#v_component_of_wind_10m u_component_of_wind_10m mean_sea_level_pressuret2m = nc_file.mean_sea_level_pressure.loc[25.5:20,109.5:117.5]t2m=np.mean(t2m, axis=(0, 1))combined_data.append(t2m)
combined_data=np.array(combined_data)/100
# 计算误差的绝对值
# 计算误差的绝对值
error1 = np.abs(var_mean - combined_data)
error2 = np.abs(var_mean - msl_ecmwf)
plt.figure(figsize=[8,4])
# 设置主图风格为Nature风格
plt.rcParams.update({'font.size': 10,'axes.linewidth': 1.0,'axes.spines.top': False,'axes.spines.right': False,'xtick.major.width': 1.0,'ytick.major.width': 1.0,'legend.frameon': False,'legend.fontsize': 10
})
plt.title('Sea Level Pressure [hpa]', fontsize=12)
plt.ylim(1006, 1010)
plt.plot(time, var_mean, label='ERA5', c='k', lw=1.5)
plt.plot(time, combined_data, label='PanGu', c='red', lw=1.5)
plt.plot(time,msl_ecmwf,label='EC', c='grey', lw=1.5)
plt.legend(loc='lower right')
# 创建嵌入的误差柱状图
inset_ax = plt.gca().inset_axes([0.12, 0.15, 0.25, 0.3]) # [x, y, width, height]
inset_ax.bar(np.arange(1,7,1),error1, color='red', alpha=1)
inset_ax.bar(np.arange(1,7,1),error2, color='k', alpha=0.5)
# # 对误差进行线性回归拟合
# slope, intercept, r_value, p_value, std_err = stats.linregress(np.arange(1,7,1), error)
# fit_line = slope * np.arange(1,7,1) + intercept
# inset_ax.plot(np.arange(1,7,1),fit_line,color='blue', lw=1.5)
# 设置误差图的标题和样式
inset_ax.set_title('Absolute Error', fontsize=6)
inset_ax.tick_params(axis='both', which='major', labelsize=8)
inset_ax.spines['top'].set_visible(False)
inset_ax.spines['right'].set_visible(False)
inset_ax.spines['bottom'].set_linewidth(1.0)
inset_ax.spines['left'].set_linewidth(1.0)
plt.show()
结果如下:
辅助左下角的柱状图,可以初步看到PanGu的实际预测和EC的预报数据各有好坏。在前三天Pangu的误差显著偏大,在第六天时EC的预报误差变大。
6.2 官网对照
得到的数据还可以在EC的官方进行检验核对,链接如下:
ECMWF | Charts
7 参考资料
[1]GitHub - 198808xc/Pangu-Weather: An official implementation of Pangu-Weather
[2]https://zhuanlan.zhihu.com/p/582285853
[3]华为云盘古气象(Pangu-Weather)大模型调试运行之小白教程-CSDN博客
具体代码已经在github中更新,可在以下链接查看:
GitHub - OkFine1/My-repository: Learning related updates
文中使用的测试数据可在百度网盘获取:
链接: https://pan.baidu.com/s/11wzQ-mrldYJrrfrTaRLOHQ 提取码: 6666
相关文章:

盘古大模型实战
0 前言 前一段时间,在学习人工智能的同时,也去了解了一下几乎是作为人工智能在气象上应用的一大里程碑式的研究成果-华为盘古气象大模型。正是盘古大模型的出现,促使天气预报的未来发展方向多了个除天气学方法、统计学方法、数值预报方法之外…...

Python subprocess.run 使用注意事项,避免出现list index out of range
在执行iOS UI 自动化专项测试的时候,在运行第一遍的时候遇到了这样的错误: 2024-12-04 20:22:27 ERROR conftest pytest_runtest_makereport 106 Test test_open_stream.py::TestOpenStream::test_xxx_open_stream[iPhoneX-xxx-1-250] failed with err…...

包管理器npm,cnpm,yarn和pnpm
npm (Node Package Manager) 核心技术与工作原理 依赖解析: 广度优先搜索(BFS):npm 使用 BFS 算法来解析依赖树,尽量扁平化 node_modules 目录以减少重复的依赖项。冲突处理:如果两个包需要同一个依赖的不…...

树莓派4B使用opencv读取摄像头配置指南
本文自己记录,给我们lab自己使用,其他朋友们不一定完全适配,请酌情参考。 一. 安装opecnv 我们的树莓派4B默认是armv7l架构,安装的miniconda最新的版本 Miniconda3-latest-Linux-armv7l.sh 仍然是python3.4几乎无法使用ÿ…...

Spring Boot 进阶话题:部署
部署是将应用程序从开发环境移动到可以供用户访问的生产环境的过程。Spring Boot提供了多种部署选项,包括打包为可执行jar文件,使用Docker容器化,以及部署到云平台。 打包Spring Boot应用 Spring Boot应用可以打包为包含所有依赖、类和资源…...

Python 3 和 MongoDB 的集成使用
Python 3 和 MongoDB 的集成使用 MongoDB 是一个流行的 NoSQL 数据库,以其灵活的数据模型和强大的查询功能而闻名。Python 3 作为一种广泛使用的编程语言,与 MongoDB 的集成变得日益重要。本文将介绍如何在 Python 3 环境中集成和使用 MongoDBÿ…...

perl语言中模式匹配的左右关系
这里简单记录一下,在perl语言中,关于模式匹配的一个细节: 在进行模式匹配的时候,左边写需要查找的字符串,右侧写匹配的关键字. 两边的顺序不一样就会导致匹配结果不一样. 测试代码:…...

【漏洞复现】网动统一通信平台(ActiveUC)接口iactiveEnterMeeting存在信息泄露漏洞
🏘️个人主页: 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞👍+收藏💗支持一下哦 @TOC 一、漏洞概述 1.1漏洞简介 漏洞名称:网动统一通信平台(ActiveUC)接口iactiveEnterMeeting存在信息泄露漏洞漏洞编号:无漏洞类型:信息泄露漏洞威胁等级:高危影…...

C++ STL 容器系列(三)list —— 编程世界的万能胶,数据结构中的百变精灵
STL系列学习参考: C STL系列__zwy的博客-CSDN博客https://blog.csdn.net/bite_zwy/category_12838593.html 学习C STL的三个境界,会用,明理,能扩展,STL中的所有容器都遵循这个规律,下面我们就按照这三个境…...

Java经典面试题总结(附答案)2025
点击获取PDF版 10、如何将字符串反转? 添加到StringBuilder中,然后调用reverse()。 11、String 类的常用方法都有那些? equals、length、contains、replace、split、hashcode、indexof、substring、trim、toUpperCase、toLowerCase、isEmpt…...

Stylus 浏览器扩展开发-Cursor AI辅助
项目起源 作为一个经常需要长时间盯着屏幕的开发者,我一直在寻找一个简单的方法来保护眼睛。最初的想法很简单:将网页背景色替换成护眼的豆沙绿。虽然市面上已经有类似的扩展,但我想要一个更加轻量且可定制的解决方案。 这个简单的需求逐渐…...

DAY35|动态规划Part03|LeetCode:01背包问题 二维、01背包问题 一维、416. 分割等和子集
目录 01背包理论基础(一) 基本思路 C代码 01背包理论基础(二) 基本思路 C代码 LeetCode:416. 分割等和子集 基本思路 C代码 01背包理论基础(一) 题目链接:卡码网46. 携带研究材料 文字…...

创建空向量:std::vector<int> v,刚创建时大小为0
创建一个空的std::vector<int> v会在刚创建时具有大小(size)为0的特点。这意味着此时向量中没有任何元素,而且其容量(capacity)也返回0,表明还没有为这个向量分配任何内存空间3。换句话说,…...

VBA基础2
VBA基础2 sub过程语法对单元格进行赋值操作连续赋值不连续赋值 cells (行,列)行引用rows列引用 (columns)offset位移属性End属性(指定返回) 使用VBA编辑器需要用AltF11打开 或者VB编辑器打开 可…...

计算机网络-GRE基础实验二
前面我们学习了GRE隧道的建立以及通过静态路由指向的方式使得双方能够网络互联,但是通过静态路由可能比较麻烦,GRE支持组播、单播、广播因此可以在GRE隧道中运行动态路由协议使得网络配置更加灵活。 通过前面的动态路由协议的学习我们知道动态路由协议都…...

JSON 使用
JSON 使用 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript编程语言的一个子集,但因其文本格式清晰简洁,被广泛用于数据交换和存储。本文将详细介绍JSON的使用方法,包括其语法、数据类型、如…...

Leetcode—1539. 第 k 个缺失的正整数【简单】
2024每日刷题(206) Leetcode—1539. 第 k 个缺失的正整数 C实现代码 class Solution { public:int findKthPositive(vector<int>& arr, int k) {int missing 1;int cur 1;int n arr.size();int missingCnt 0;int ptr 0;for(; missingCn…...

深入浅出:PHP 控制结构与循环语句
文章目录 引言控制结构条件判断if-else 语句elseif 语句嵌套的 if 语句三元运算符 switch 语句 循环语句for 循环遍历数组使用 range() while 循环基本用法无限循环循环控制语句break 语句continue 语句do-while 循环 综合案例参考资料 引言 PHP 是一种广泛用于服务器端开发的…...

深入解析 Loss 减少方式:mean和sum的区别及其在大语言模型中的应用 (中英双语)
深入解析 Loss 减少方式:mean 和 sum 的区别及其在大语言模型中的应用 在训练大语言模型(Large Language Models, LLM)时,损失函数(Loss Function)的处理方式对模型的性能和优化过程有显著影响。本文以 re…...

c++ auto
在C中,auto 是一种类型推导关键字,它允许编译器根据初始化表达式的类型自动推导变量的类型。自 C11 标准引入以来,auto 使得代码更加简洁,并且可以减少冗长的类型声明,尤其是在类型名称非常复杂或难以立即确定的情况下…...

python中的列表、元组、字典的介绍与使用
目录 一、区别介绍 1.使用场景以及区别图 2.详细介绍 列表 元组 字典 二、例子操作 (一)列表list 1.定义和初始化 2.访问元素(下标) 3.修改元素(下标) 4.添加元素(append、下标insert) 5.删除…...

深入浅出:PHP中的表单处理全解析
引言 在Web开发的世界里,表单是用户与服务器之间交互的重要桥梁。它们允许用户提交信息,并通过后端语言(如PHP)进行处理。本文将带你深入了解PHP中的表单处理,从基础的创建和提交到高级的安全措施和实用技巧ÿ…...

双绞线直连两台电脑的方法及遇到的问题
文章目录 前言一、步骤二、问题总结:问题1:遇到ping不通的问题。问题2:访问其他电脑上的共享文件时提示输入网络凭证问题3:局域网共享文件时提示“没有权限访问,请与网络管理员联系请求访问权限” 前言 办公室里有两台电脑,一台装了显卡用于…...

2024年认证杯SPSSPRO杯数学建模D题(第一阶段)AI绘画带来的挑战解题全过程文档及程序
2024年认证杯SPSSPRO杯数学建模 D题 AI绘画带来的挑战 原题再现: 2023 年开年,ChatGPT 作为一款聊天型AI工具,成为了超越疫情的热门词条;而在AI的另一个分支——绘图领域,一款名为Midjourney(MJÿ…...

Qt 设置QLineEdit控件placeholderText颜色
Qt 会根据QLineEdit控件显示文本的颜色自动设置placeholderText颜色,如果想自定义placeholderText颜色,可以通过以下方法。 在样式文件中增加以下设置: QLineEdit#lineEdit_userName, QLineEdit#lineEdit_password{border: none;padding: 6…...

麒麟 V10 系统(arm64/aarch64)离线安装 docker 和 docker-compose
前期准备 查看操作系统版本,跟本文标题核对一下 uname -a查看操作系统架构 uname -m下载离线包 下载 docker 离线包 地址:https://download.docker.com/linux/static/stable/ 选择系统架构对应的文件目录:aarch64,我目前使用…...

Windows基线自动化检查脚本
本批处理脚本的主要目的是对Windows系统进行安全性检查。检查了多个安全参数和设置,以确保系统符合特定的安全标准。当然也可能有些检查项不是很准确,需要根据实际环境再调试一下,以下是该脚本的详细描述和功能分析: 1. 脚本初始…...

离谱的梯形滤波器——增加过渡点
增加过渡点 频率采样法(Frequency Sampling Method)是一种设计FIR滤波器的方法,通过在频域中指定希望的频率响应,然后利用逆离散傅里叶变换(IDFT)来获得滤波器的脉冲响应。然而,这种方法容易导…...

tauri下的两个常用rust web框架:Leptos和Trunk
tauri下有两个常用rust web框架,就是Leptos和Trunk Leptos Leptos 是一个基于 Rust 的 Web 框架。您可以在他们的官方网站上了解更多关于 Leptos 的信息。本指南适用于 Leptos 的 0.6 版本。 Leptos Leptos 是一个用 Rust 编写的现代、高效且安全的 Web 框架。它…...

pubmed关键词搜索技能1:待更新
1,白话变为领域内学术词: 例如,我想要做蛋白质糖基化修饰以功能,这个领域课题,则 第一性原理,首先是拆分词汇:糖基化(一般比蛋白质、修饰、功能要在title中更常见,或者是…...