【Paddle打比赛】基于PaddleClas的天气以及时间分类比赛
一、天气以及时间分类
比赛地址: https://www.datafountain.cn/competitions/555
1.赛题背景
在自动驾驶场景中,天气和时间(黎明、早上、下午、黄昏、夜晚)会对传感器的精度造成影响,比如雨天和夜晚会对视觉传感器的精度造成很大的影响。此赛题旨在对拍摄的照片天气和时间进行分类,从而在不同的天气和时间使用不同的自动驾驶策略。
2.赛题任务
此赛题的数据集由云测数据提供。比赛数据集中包含3000张真实场景下行车记录仪采集的图片,其中训练集包含2600张带有天气和时间类别标签的图片,测试集包含400张不带有标签的图片。参赛者需基于Oneflow框架在训练集上进行训练,对测试集中照片的天气和时间进行分类。
3.数据简介
本赛题的数据集包含2600张人工标注的天气和时间标签。
- 天气类别:多云、晴天、雨天、雪天和雾天5个类别
- 时间:黎明、早上、下午、黄昏、夜晚5个类别
下午 多云
早上 雨天
4.数据说明
数据集包含anno和image两个文件夹,anno文件夹中包含2600个标签json文件,image文件夹中包含3000张行车记录仪拍摄的JPEG编码照片。图片标签将字典以json格式序列化进行保存:
列名 | 取值范围 | 作用 |
---|---|---|
Period | 黎明、早上、下午、黄昏、夜晚 | 图片拍摄时间 |
Weather | 多云、晴天、雨天、雪天、雾天 | 图片天气 |
5.提交要求
参赛者使用Oneflow框架对数据集进行训练后对测试集图片进行推理后,
1.将测试集图片的目标检测和识别结果以与训练集格式保持一致的json文件序列化保存,并上传至参赛平台由参赛平台自动评测返回结果。
2.在提交时的备注附上自己的模型github仓库链接
6.提交示例
{
“annotations”: [
{
“filename”: “test_images\00008.jpg”,
“period”: “Morning”,
“weather”: “Cloudy”
}]
}
7.解题思路
总体上看,该任务可以分为2个:一个是预测时间、一个是预测天气,具体如下:
- 预测时间、天气数据标签列表生成
- 数据集划分
- 数据均衡(数据很不均衡)
- 分别预测
- 合并预测结果
二、数据集准备
1.数据下载
# 直接下载,速度超快
!wget https://awscdn.datafountain.cn/cometition_data2/Files/BDCI2021/555/train_dataset.zip
!wget https://awscdn.datafountain.cn/cometition_data2/Files/BDCI2021/555/test_dataset.zip
!wget https://awscdn.datafountain.cn/cometition_data2/Files/BDCI2021/555/submit_example.json
2.数据解压缩
# 解压缩数据集
!unzip -qoa test_dataset.zip
!unzip -qoa train_dataset.zip
3.按时间制作标签
注意事项:虽然数据描述说时间** Period 为 黎明、早上、下午、黄昏、夜晚**,但是经过遍历发现只有4类。。。。。,故如下制作标签
# 标签修改
%cd ~
import json
import ostrain = {}
with open('train.json', 'r') as f:train = json.load(f)period_list = {'Dawn': 0, 'Dusk': 1, 'Morning': 2, 'Afternoon': 3}
f_period=open('train_period.txt','w')
for item in train["annotations"]:label = period_list[item['period']] file_name=os.path.join(item['filename'].split('\\')[0], item['filename'].split('\\')[1])f_period.write(file_name +' '+ str(label) +'\n')
f_period.close()
print("写入train_period.txt完成!!!")
/home/aistudio
写入train_period.txt完成!!!
4.数据集划分并数据均衡
# 数据分析
%cd ~
import pandas as pd
from matplotlib import pyplot as plt
%matplotlib inlinedata=pd.read_csv('train_period.txt', header=None, sep=' ')
print(data[1].value_counts())
data[1].value_counts().plot(kind="bar")
/home/aistudio
2 1613
3 829
1 124
0 34
Name: 1, dtype: int64<matplotlib.axes._subplots.AxesSubplot at 0x7feffe438b50>
# 训练集、测试集划分
import pandas as pd
import os
from sklearn.model_selection import train_test_splitdef split_dataset(data_file):# 展示不同的调用方式data = pd.read_csv(data_file, header=None, sep=' ')train_dataset, eval_dataset = train_test_split(data, test_size=0.2, random_state=42)print(f'train dataset len: {train_dataset.size}')print(f'eval dataset len: {eval_dataset.size}')train_filename='train_' + data_file.split('.')[0]+'.txt'eval_filename='eval_' + data_file.split('.')[0]+'.txt'train_dataset.to_csv(train_filename, index=None, header=None, sep=' ')eval_dataset.to_csv(eval_filename, index=None, header=None, sep=' ')data_file='train_period.txt'
split_dataset(data_file)
train dataset len: 4160
eval dataset len: 1040
# pip更新或安装包后需要重启notebook
!pip install -U scikit-learn
# 数据均衡用
!pip install -U imblearn
# 数据均衡
import pandas as pd
from collections import Counter
from imblearn.over_sampling import SMOTE
import numpy as npdef upsampleing(filename):print(50 * '*')data = pd.read_csv(filename, header=None, sep=' ')print(data[1].value_counts())# 查看各个标签的样本量print(Counter(data[1]))print(50 * '*')# 数据均衡X = np.array(data[0].index.tolist()).reshape(-1, 1)y = data[1]ros = SMOTE(random_state=0)X_resampled, y_resampled = ros.fit_resample(X, y)print(Counter(y_resampled))print(len(y_resampled))print(50 * '*')img_list=[]for i in range(len(X_resampled)):img_list.append(data.loc[X_resampled[i]][0].tolist()[0])dict_weather={'0':img_list, '1':y_resampled.values}newdata=pd.DataFrame(dict_weather)print(len(newdata))new_filename=filename.split('.')[0]+'_imblearn'+'.txt'newdata.to_csv(new_filename, header=None, index=None, sep=' ')filename='train_train_period.txt'
upsampleing(filename)
filename='eval_train_period.txt'
upsampleing(filename)
**************************************************
2 1304
3 653
1 95
0 28
Name: 1, dtype: int64
Counter({2: 1304, 3: 653, 1: 95, 0: 28})
**************************************************
Counter({2: 1304, 3: 1304, 1: 1304, 0: 1304})
5216
**************************************************
5216
**************************************************
2 309
3 176
1 29
0 6
Name: 1, dtype: int64
Counter({2: 309, 3: 176, 1: 29, 0: 6})
**************************************************
Counter({2: 309, 3: 309, 1: 309, 0: 309})
1236
**************************************************
1236
5.按天气分制作标签
import json
import ostrain = {}
with open('train.json', 'r') as f:train = json.load(f)weather_list = {'Cloudy': 0, 'Rainy': 1, 'Sunny': 2}
f_weather=open('train_weather.txt','w')
for item in train["annotations"]:label = weather_list[item['weather']] file_name=os.path.join(item['filename'].split('\\')[0], item['filename'].split('\\')[1])f_weather.write(file_name +' '+ str(label) +'\n')
f_weather.close()
print("写入train_weather.txt完成!!!")
写入train_weather.txt完成!!!
6.数据集划分并均衡
import pandas as pd
from matplotlib import pyplot as pltdata=pd.read_csv('train_weather.txt', header=None, sep=' ')
print(data[1].value_counts())
data[1].value_counts().plot(kind="bar")
0 1119
2 886
1 595
Name: 1, dtype: int64<matplotlib.axes._subplots.AxesSubplot at 0x7feffe82d190>
# 训练集、测试集划分import pandas as pd
import os
from sklearn.model_selection import train_test_splitdef split_dataset(data_file):# 展示不同的调用方式data = pd.read_csv(data_file, header=None, sep=' ')train_dataset, eval_dataset = train_test_split(data, test_size=0.2, random_state=42)print(f'train dataset len: {train_dataset.size}')print(f'eval dataset len: {eval_dataset.size}')train_filename='train_' + data_file.split('.')[0]+'.txt'eval_filename='eval_' + data_file.split('.')[0]+'.txt'train_dataset.to_csv(train_filename, index=None, header=None, sep=' ')eval_dataset.to_csv(eval_filename, index=None, header=None, sep=' ')data_file='train_weather.txt'
split_dataset(data_file)
train dataset len: 4160
eval dataset len: 1040
# 数据均衡
import pandas as pd
from collections import Counter
from imblearn.over_sampling import SMOTE
import numpy as npdef upsampleing(filename):print(50 * '*')data = pd.read_csv(filename, header=None, sep=' ')print(data[1].value_counts())# 查看各个标签的样本量print(Counter(data[1]))print(50 * '*')# 数据均衡X = np.array(data[0].index.tolist()).reshape(-1, 1)y = data[1]ros = SMOTE(random_state=0)X_resampled, y_resampled = ros.fit_resample(X, y)print(Counter(y_resampled))print(len(y_resampled))print(50 * '*')img_list=[]for i in range(len(X_resampled)):img_list.append(data.loc[X_resampled[i]][0].tolist()[0])dict_weather={'0':img_list, '1':y_resampled.values}newdata=pd.DataFrame(dict_weather)print(len(newdata))new_filename=filename.split('.')[0]+'_imblearn'+'.txt'newdata.to_csv(new_filename, header=None, index=None, sep=' ')filename='train_train_weather.txt'
upsampleing(filename)
filename='eval_train_weather.txt'
upsampleing(filename)
**************************************************
0 892
2 715
1 473
Name: 1, dtype: int64
Counter({0: 892, 2: 715, 1: 473})
**************************************************
Counter({0: 892, 2: 892, 1: 892})
2676
**************************************************
2676
**************************************************
0 227
2 171
1 122
Name: 1, dtype: int64
Counter({0: 227, 2: 171, 1: 122})
**************************************************
Counter({0: 227, 2: 227, 1: 227})
681
**************************************************
681
三、环境准备
飞桨图像识别套件PaddleClas是飞桨为工业界和学术界所准备的一个图像识别任务的工具集,助力使用者训练出更好的视觉模型和应用落地。此次计划使用端到端的PaddleClas图像分类套件来快速完成分类。此次使用PaddleClas框架完成比赛。
# git 下载PaddleClas
!git clone https://gitee.com/paddlepaddle/PaddleClas.git --depth=1
fatal: destination path 'PaddleClas' already exists and is not an empty directory.
# 安装
%cd ~/PaddleClas/
!pip install -U pip
!pip install -r requirements.txt
!pip install -e ./
%cd ~
四、模型训练 and 评估
1.时间训练
以 PaddleClas/ppcls/configs/ImageNet/VisionTransformer/ViT_small_patch16_224.yaml 为基础进行修改
# global configs
Global:checkpoints: nullpretrained_model: nulloutput_dir: ./output/device: gpusave_interval: 1eval_during_train: Trueeval_interval: 1epochs: 120print_batch_step: 10use_visualdl: False# used for static mode and model exportimage_shape: [3, 224, 224]save_inference_dir: ./inference# model architecture
Arch:name: ViT_small_patch16_224class_num: 1000# loss function config for traing/eval process
Loss:Train:- CELoss:weight: 1.0Eval:- CELoss:weight: 1.0Optimizer:name: Momentummomentum: 0.9lr:name: Piecewiselearning_rate: 0.1decay_epochs: [30, 60, 90]values: [0.1, 0.01, 0.001, 0.0001]regularizer:name: 'L2'coeff: 0.0001# data loader for train and eval
DataLoader:Train:dataset:name: ImageNetDatasetimage_root: ./dataset/ILSVRC2012/cls_label_path: ./dataset/ILSVRC2012/train_list.txttransform_ops:- DecodeImage:to_rgb: Truechannel_first: False- RandCropImage:size: 224- RandFlipImage:flip_code: 1- NormalizeImage:scale: 1.0/255.0mean: [0.5, 0.5, 0.5]std: [0.5, 0.5, 0.5]order: ''sampler:name: DistributedBatchSamplerbatch_size: 64drop_last: Falseshuffle: Trueloader:num_workers: 4use_shared_memory: TrueEval:dataset: name: ImageNetDatasetimage_root: ./dataset/ILSVRC2012/cls_label_path: ./dataset/ILSVRC2012/val_list.txttransform_ops:- DecodeImage:to_rgb: Truechannel_first: False- ResizeImage:resize_short: 256- CropImage:size: 224- NormalizeImage:scale: 1.0/255.0mean: [0.5, 0.5, 0.5]std: [0.5, 0.5, 0.5]order: ''sampler:name: DistributedBatchSamplerbatch_size: 64drop_last: Falseshuffle: Falseloader:num_workers: 4use_shared_memory: TrueInfer:infer_imgs: docs/images/whl/demo.jpgbatch_size: 10transforms:- DecodeImage:to_rgb: Truechannel_first: False- ResizeImage:resize_short: 256- CropImage:size: 224- NormalizeImage:scale: 1.0/255.0mean: [0.5, 0.5, 0.5]std: [0.5, 0.5, 0.5]order: ''- ToCHWImage:PostProcess:name: Topktopk: 5class_id_map_file: ppcls/utils/imagenet1k_label_list.txtMetric:Train:- TopkAcc:topk: [1, 5]Eval:- TopkAcc:topk: [1, 5]
# 覆盖配置
%cd ~
!cp -f ~/ViT_small_patch16_224.yaml ~/ppcls/configs/ImageNet/VisionTransformer/ViT_small_patch16_224.yaml
/home/aistudio
# 开始训练
%cd ~/PaddleClas/!python3 tools/train.py \-c ./ppcls/configs/ImageNet/VisionTransformer/ViT_base_patch16_224.yaml \-o Arch.pretrained=True \-o Global.pretrained_model=./output/ViT_base_patch16_224/epoch_21 \-o Global.device=gpu
/home/aistudio/PaddleClas
# 模型评估
%cd ~/PaddleClas/!python tools/eval.py \-c ./ppcls/configs/ImageNet/VisionTransformer/ViT_base_patch16_224.yaml \-o Global.pretrained_model=./output/ViT_base_patch16_224/best_model
2.天气训练
配置文件为:** PaddleClas/ppcls/configs/ImageNet/VisionTransformer/ViT_base_patch16_224_weather.yaml**
# global configs
Global:checkpoints: nullpretrained_model: nulloutput_dir: ./output_weather/device: gpusave_interval: 1eval_during_train: Trueeval_interval: 1epochs: 120print_batch_step: 10use_visualdl: False# used for static mode and model exportimage_shape: [3, 224, 224]save_inference_dir: ./inference_weather# model architecture
Arch:name: ViT_base_patch16_224class_num: 3# loss function config for traing/eval process
Loss:Train:- CELoss:weight: 1.0Eval:- CELoss:weight: 1.0Optimizer:name: Momentummomentum: 0.9lr:name: Piecewiselearning_rate: 0.01decay_epochs: [10, 22, 30]values: [0.01, 0.001, 0.0001, 0.00001]regularizer:name: 'L2'coeff: 0.0001# data loader for train and eval
DataLoader:Train:dataset:name: ImageNetDatasetimage_root: /home/aistudiocls_label_path: /home/aistudio/train_train_weather_imblearn.txttransform_ops:- DecodeImage:to_rgb: Truechannel_first: False- RandCropImage:size: 224- RandFlipImage:flip_code: 1- NormalizeImage:scale: 1.0/255.0mean: [0.5, 0.5, 0.5]std: [0.5, 0.5, 0.5]order: ''sampler:name: DistributedBatchSamplerbatch_size: 160drop_last: Falseshuffle: Trueloader:num_workers: 4use_shared_memory: TrueEval:dataset: name: ImageNetDatasetimage_root: /home/aistudio/cls_label_path: /home/aistudio/eval_train_weather_imblearn.txttransform_ops:- DecodeImage:to_rgb: Truechannel_first: False- ResizeImage:resize_short: 256- CropImage:size: 224- NormalizeImage:scale: 1.0/255.0mean: [0.5, 0.5, 0.5]std: [0.5, 0.5, 0.5]order: ''sampler:name: DistributedBatchSamplerbatch_size: 128drop_last: Falseshuffle: Falseloader:num_workers: 4use_shared_memory: TrueInfer:infer_imgs: docs/images/whl/demo.jpgbatch_size: 10transforms:- DecodeImage:to_rgb: Truechannel_first: False- ResizeImage:resize_short: 256- CropImage:size: 224- NormalizeImage:scale: 1.0/255.0mean: [0.5, 0.5, 0.5]std: [0.5, 0.5, 0.5]order: ''- ToCHWImage:PostProcess:name: Topktopk: 5class_id_map_file: ppcls/utils/imagenet1k_label_list.txtMetric:Train:- TopkAcc:topk: [1, 2]Eval:- TopkAcc:topk: [1, 2]
# 覆盖配置
%cd ~
!cp -f ~/ViT_small_patch16_224_weather.yaml ~/ppcls/configs/ImageNet/VisionTransformer/ViT_small_patch16_224_weather.yaml
# 模型训练
%cd ~/PaddleClas/!python3 tools/train.py \-c ./ppcls/configs/ImageNet/VisionTransformer/ViT_base_patch16_224_weather.yaml \-o Arch.pretrained=True \-o Global.device=gpu
# 模型评估
%cd ~/PaddleClas/!python tools/eval.py \-c ./ppcls/configs/ImageNet/VisionTransformer/ViT_base_patch16_224_weather.yaml \-o Global.pretrained_model=./output_weather/ViT_base_patch16_224/best_model
五、预测
1.时间模型导出
# 模型导出
%cd ~/PaddleClas/
!python tools/export_model.py -c ./ppcls/configs/ImageNet/VisionTransformer/ViT_base_patch16_224.yaml -o Global.pretrained_model=./output/ViT_base_patch16_224/best_model
2.开始预测
编辑 PaddleClas/deploy/python/predict_cls.py,按提交格式输出预测结果到文件。
def main(config):cls_predictor = ClsPredictor(config)image_list = get_image_list(config["Global"]["infer_imgs"])batch_imgs = []batch_names = []cnt = 0# 保存到文件f=open('/home/aistudio/result.txt', 'w')for idx, img_path in enumerate(image_list):img = cv2.imread(img_path)if img is None:logger.warning("Image file failed to read and has been skipped. The path: {}".format(img_path))else:img = img[:, :, ::-1]batch_imgs.append(img)img_name = os.path.basename(img_path)batch_names.append(img_name)cnt += 1if cnt % config["Global"]["batch_size"] == 0 or (idx + 1) == len(image_list):if len(batch_imgs) == 0:continuebatch_results = cls_predictor.predict(batch_imgs)for number, result_dict in enumerate(batch_results):filename = batch_names[number]clas_ids = result_dict["class_ids"]scores_str = "[{}]".format(", ".join("{:.2f}".format(r) for r in result_dict["scores"]))label_names = result_dict["label_names"]f.write("{} {}\n".format(filename, clas_ids[0]))print("{}:\tclass id(s): {}, score(s): {}, label_name(s): {}".format(filename, clas_ids, scores_str, label_names))batch_imgs = []batch_names = []if cls_predictor.benchmark:cls_predictor.auto_logger.report()return
# 覆盖预测文件
!cp -f ~/predict_cls.py ~/deploy/python/predict_cls.py
# 开始预测
%cd /home/aistudio/PaddleClas/deploy
!python3 python/predict_cls.py -c configs/inference_cls.yaml -o Global.infer_imgs=/home/aistudio/test_images -o Global.inference_model_dir=../inference/ -o PostProcess.Topk.class_id_map_file=None
%cd ~
!mv result.txt result_period.txt
/home/aistudio
mv: cannot stat 'result.txt': No such file or directory
3.天气模型导出
# 模型导出
%cd ~/PaddleClas/
!python tools/export_model.py -c ./ppcls/configs/ImageNet/VisionTransformer/ViT_base_patch16_224_weather.yaml -o Global.pretrained_model=./output_weather/ViT_base_patch16_224/best_model
4.天气预测
# 开始预测
%cd /home/aistudio/PaddleClas/deploy
!python3 python/predict_cls.py -c configs/inference_cls.yaml -o Global.infer_imgs=/home/aistudio/test_images -o Global.inference_model_dir=../inference_weather/ -o PostProcess.Topk.class_id_map_file=None
%cd ~
!mv result.txt result_weather.txt
/home/aistudio
六、合并并提交
1.预测结果合并
period_list = { 0:'Dawn', 1:'Dusk', 2:'Morning', 3:'Afternoon'}
weather_list = {0:'Cloudy', 1:'Rainy', 2:'Sunny'}
import pandas as pd
import json
data_period= pd.read_csv('result_period.txt', header=None, sep=' ')
data_weather= pd.read_csv('result_weather.txt', header=None, sep=' ')
annotations_list=[]
for i in range(len(data_period)):temp={}temp["filename"]="test_images"+"\\"+data_weather.loc[i][0]temp["period"]=period_list[data_period.loc[i][1]]temp["weather"]=weather_list[data_weather.loc[i][1]]annotations_list.append(temp)
myresult={}
myresult["annotations"]=annotations_listwith open('result.json','w') as f:json.dump(myresult, f)
ather"]=weather_list[data_weather.loc[i][1]]annotations_list.append(temp)
myresult={}
myresult["annotations"]=annotations_listwith open('result.json','w') as f:json.dump(myresult, f)print("结果生成完毕")
结果生成完毕
2.提交并获取成绩
下载result.json并提交,即可获得成绩
3.其他注意事项
生成版本时提示存在无效软链接无法保存 ,可以在终端 PaddleClas 下运行下列代码清理即可。
for a in `find . -type l`
dostat -L $a >/dev/null 2>/dev/nullif [ $? -gt 0 ]thenrm $afi
done
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- Qt6 QML Book/画布/画布绘制
Canvas Paint 画布绘制 In this example, we will create a small paint application using the Canvas element. 在本例中,我们将使用Canvas元素类型创建一个小的绘画应用程序。 For this, we arrange four color squares on the top of our scene using a row …...
2024/4/28 6:05:37 - Linux(CentOS7)下搭建nacos集群,超详细
最近工作接手一个调整项目框架的活,我被分配到搭建nacos注册中心的工作;nacos注册中心是alibaba旗下的一个开源组件,它提供了SpringCloud alibaba 微服务架构的注册中心以及配置中心功能,并且提供了比较直观的可视化界面ÿ…...
2024/4/14 8:45:09 - 专转本波形声音的获取与播放-笔记
声音: 由振动产生,通过空气介质进行传播;声音一种波,它由许多不同频率的谐波组成,谐波的频率范围称为声音的“带宽”。 波形声音 波形声音,是最常用的 Windows 多媒体特性。波形声音设备可以通过麦克风&…...
2024/4/19 11:13:52 - 7天快速上手OpenHarmony应用开发 |Day1 OpenHarmony介绍总结
OpenHarmony&HarmonyOS OpenHarmony: 是HarmonyOS的核心基础架构,不是操作系统。作为手机厂商要和鸿蒙挂钩,还要依照OpenHarmony自己开发一套系统,不能直接使用OpenHarmony。 HarmonyOS: 是华为基于开源项目OpenH…...
2024/4/14 8:45:09 - B2B2C、C2F、S2B2b2C、O2O、S2B2C和各种的模式缩写解释说明
文章目录常见电子商务模式B2BB2CB2B2CC2CC2FS2B2CS2B2b2CO2O其他电子商务知识电子商务知识口诀电子商务模式前言:S2B2b2C、B2B2C、B2B、C2F、O2O、B2C、S2B2C,大家如果看着这些常见又陌生的名词,是不是有点摸不着头脑?下面带大家认…...
2024/4/8 20:49:24 - 用paddleocr打造一款“盗幕笔记”
还在为听AI Studio课程等网络课程的时候 记笔记速度太慢 记不完整 跟不上老师的讲课速度 因记笔记而错过老师的讲课内容 等问题而烦恼? 快来用paddleocr打造一款“盗幕笔记”吧! 您的浏览器不支持 video 标签。 PaddleOCR简介 OCR(Opt…...
2024/4/14 14:45:02 - 1049 数列的片段和 (20 分)
给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段。例如,给定数列 { 0.1, 0.2, 0.3, 0.4 },我们有 (0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0.3) (0.3, 0.4) (0…...
2024/4/14 8:45:50 - 手把手教你如何PCB板材选型(一)
FR4是以环氧树脂作为粘合剂,玻纤布作为增强材料的一种,也就是说只要使用这种体系的材料都可以叫做FR4,所以FR4是这种树脂体系的统称。 FR4具有电绝缘性能稳定、平整度好、表面光滑、无凹凸、厚度公差标准等特点。 一、分类 1.根据用途不同分…...
2024/4/14 8:45:45 - 7.2 B树的定义、查找效率分析、B树的高度、插入和删除
1. B树 1.1 回顾:二叉查找树(BST)1.2 5叉查找树1.3 如何查找1.4 如何保证查找效率1.5 B树1.6 B树的高度1.7 知识回顾 2. B树的插入和删除 2.1 B树的插入2.2 B树的删除2.3 知识回顾 1. B树 1.1 回顾:二叉查找树(BST&a…...
2024/4/16 7:47:55 - 异或运算面试题——一个数组中有一种数出现K次,其它数都出现了M次,M>1且K<M, 找到出现了K次的数,并要求额外空间复杂度为O(1),时间复杂度为O(N)
题目:一个数组中有一种数出现K次,其它数都出现了M次,M>1且K<M,找到出现了K次的数,并要求额外空间复杂度为O(1),时间复杂度为O(N) package com.harrison.class01;import java.util.HashMap; import j…...
2024/4/14 8:45:45 - 1.17-1.23
上个星期电脑坏了 被送去修去了 这次先借的朋友电脑去补题 ............ 这周学习了一些关于位运算跟递归算法,做了一些题目还学习不用加减乘除去求前n向之和 算是有了一些收获 以后的时间不会漏题 一天至少一道...
2024/4/14 8:45:55 - 注册页面例子,根据json表动态渲染组件和上送参数
大家都知道在项目中提高代码复用率,可以减少冗余代码量和节约开发时间,页面中的组件多了以后管理和使用,这里提供一种根据json表管理组件的设计思路。 核心思想就是把所有的组件都注册到json表里面,再把一些组件需要用到的静态参…...
2024/4/15 16:38:12 - 农户在集市上卖西瓜,他总共有1020个西瓜,第一天卖掉一半多两个,第二天卖掉剩下的一半多两个, 问照此规律实下去,该农户几天能将所有的西瓜卖完。C语言
...
2024/4/19 15:36:56 - 对数器的概念及应用
对数器的概念 1.有一个你想要测的方法a; 2.实现一个绝对正确但是复杂度不好的方法b; 3.实现一个随机样本产生器; 4.实现对比算法a和b的方法; 5.把方法a和方法b比对多次来验证方法a是否正确; 6.如果有一个样本使得比对…...
2024/4/14 8:45:45 - 值得你关注的9个linux入门工具
有太多干扰和非生产性活动影响我们在工作场所的表现,但也有许多方法可以提高专注度和工作效率。如果你在寻找提高生产力、保持井然有序的方法,不妨考虑使用特殊软件来打造高效的工作环境。 我们汇总了几款你可能没听说过的面向linux入门的学习工具。它们…...
2024/4/20 7:31:06 - Android R(11)跨进程调用自定义HIDL服务接口(八)
幸苦添加的HIDL service是为了服务各个client请求的。在实际场景中,HIDL service一般对应某个硬件模块,其中的接口则对应硬件所具备的功能。各个client则是对该模块有具体需求的。例如 HIDL-Light中则会提供控制具体led的接口,那么client则可…...
2024/4/14 8:45:40 - MATLAB信号处理——信号与系统的分析基础(1)
1-1 信号的概念 信号是传递信息的函数,可以表示为一个或几个独立变量的函数。按照时间、幅值的连续与离散可以分为: (1)连续时间信号:时间连续,幅值可以连续也可以离散 (2)模拟信…...
2024/4/14 8:46:05 - Spring04-Bean的自动装配
自动装配是Spring是满足bean依赖的一种方式,之前都要手动给 bean 注入依赖,否则属性就为空自动装配:Spring会在上下文自动寻找,并自动给bean装配属性 在Spring中有三种装配的方式 在xml中显示配置 在java中显示配置 隐式的自动装配bean 【重要】 环境…...
2024/4/14 8:45:30 - C语言实现扫雷游戏
目录 一、问题描述 二、问题拆解 三、代码实现 1.游戏基本菜单 2.创建一个雷的区域和排查雷的区域 3.对这两个区域进行初始化 4.展示雷区给玩家 5.布置雷到雷区 6.玩家进行排查雷 7.设计一个总方案 四、总结 一、问题描述 首先,再写这个游戏之前…...
2024/4/14 8:45:35 - golang之defer语句
文章目录defer语句释放资源变量捕获返回值影响具名返回值非具名返回值defer语句会将其对应的函数延迟执行。defer语句 defer语句用于延迟函数调用,每次会把一个函数压入栈中,函数返回前再把延迟的函数取出并执行。延迟函数可以有参数: 延迟…...
2024/4/14 8:45:45
最新文章
- 应用实战|只需几步,即可享有外卖订餐小程序
本示例是一个简单的外卖查看店铺点菜的外卖微信小程序,小程序后端服务使用了MemFire Cloud,其中使用到的MemFire Cloud功能包括: 其中使用到的MemFire Cloud功能包括: 云数据库:存储外卖微信小程序所有数据表的信息。…...
2024/4/28 21:19:39 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - Django实现的登录注册功能
1 前言 在Web开发中,用户登录和注册是最基本且必不可少的功能。Django,作为一个高级的Python Web框架,为我们提供了强大的工具和库来快速实现这些功能。下面,我将详细介绍如何使用Django来实现用户登录和注册功能。 2 功能介绍 …...
2024/4/23 6:25:06 - 黑客(网络安全)技术自学——高效学习
01 什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面…...
2024/4/22 19:45:37 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/28 13:52:11 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/28 3:28:32 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/26 23:05:52 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/28 13:51:37 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/28 15:57:13 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/28 1:22:35 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/25 18:39:14 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/26 23:04:58 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/28 5:48:52 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/26 19:46:12 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/27 11:43:08 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/27 8:32:30 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57