- 知识蒸馏:从软标签压缩到推理能力迁移的工程实践(基于教师-学生模型的高效压缩技术与DeepSeek合成数据创新)
AI仙人掌
人工智能AI人工智能深度学习语言模型机器学习
知识蒸馏通过迁移教师模型(复杂)的知识到学生模型(轻量),实现模型压缩与性能平衡。核心在于利用教师模型的软标签(概率分布)替代独热编码标签,学生模型不仅学习到教师模型输出数据的类别信息,还能够捕捉到类别之间的相似性和关系,从而提升其泛化能力核心概念知识蒸馏的核心目标是实现从教师模型到学生模型的知识迁移。在实际应用中,无论是大规模语言模型(LLMs)还是其他类型的神经网络模型,都会通过softmax
- 知识蒸馏 vs RLHF:目标函数与收敛分析
从零开始学习人工智能
人工智能
1.知识蒸馏(KnowledgeDistillation)知识蒸馏是一种模型压缩技术,旨在将大型复杂模型(教师模型)的知识迁移到较小的模型(学生模型)中,以提高学生模型的性能。目标函数知识蒸馏的目标函数通常由两部分组成:分类损失(StudentLoss):学生模型的输出与真实标签之间的交叉熵损失,表示为:[Lclassification=CrossEntropy(y,q(1))=−∑i=1Nyil
- 从剪枝到知识蒸馏:深度学习模型压缩与加速的多重策略
一键难忘
剪枝深度学习算法知识蒸馏
本文收录于专栏:精通AI实战千例专栏合集https://blog.csdn.net/weixin_52908342/category_11863492.html从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。每一个案例都附带关键代码,详细讲解供大家学习,希望可以帮到大家。正在不断更新中文章目录从剪枝到知识蒸馏:深度学习模型压缩与加速的多重策略1.
- TPAMI 2024 | 学习人类教育智慧:以学生为中心的知识蒸馏方法
小白学视觉
论文解读IEEETPAMI知识蒸馏TPAMI论文解读深度学习
题目:LearningFromHumanEducationalWisdom:AStudent-CenteredKnowledgeDistillationMethod学习人类教育智慧:以学生为中心的知识蒸馏方法作者:S.Yang;J.Yang;M.Zhou;Z.Huang;W.-S.Zheng;X.Yang;J.Ren摘要现有的知识蒸馏研究通常侧重于以教师为中心的方法,其中教师网络根据自身标准进行训
- 必看!一文读懂知识蒸馏技术
小天才学习机打游戏
人工智能知识图谱神经网络langchainwindows
导读最近,DeepSeek的爆火让大家对人工智能领域的技术发展又有了新的关注。而知识蒸馏作为深度学习中一项重要的技术,也在背后默默地发挥着作用,今天就来给大家详细介绍一下知识蒸馏及其相关原理。1.知识蒸馏是什么在深度学习领域,大型模型(如DeepSeek)通常具有强大的性能,但它们的计算量和参数量都非常庞大,这使得它们难以在资源受限的设备(如移动设备或嵌入式设备)上部署。例如,GPT-3在570G
- LLM之Colossal-LLaMA-2:源码解读(init_tokenizer.py文件)实现基于源词表的扩展、(init_model.py文件)实现过计算均值扩展模型、(prepare_pretr
一个处女座的程序猿
CaseCodeNLP/LLMs精选(人工智能)-中级ColossalLLaMA-2自然语言处理
LLM之Colossal-LLaMA-2:源码解读(init_tokenizer.py文件)实现基于jsonl文件中读取新词列表(新中文词汇)→for循环去重实现词表的扩展(中文标记的新词汇)→保存新的分词模型、(init_model.py文件)实现过计算均值来扩展模型的嵌入层以适应新的词汇表,然后保存扩展后的模型、(prepare_pretrain_dataset.py文件)将原始数据集进行处理
- LLMs之Colossal-LLaMA-2:源码解读(train.py文件)基于给定数据集实现持续预训练LLaMA-2—解析命令行参数→初始化配置(分布式训练环境colossalai+训练日志+加速插
一个处女座的程序猿
NLP/LLMs精选(人工智能)-中级Colossal-AILLaMA-2大语言模型自然语言处理
LLMs之Colossal-LLaMA-2:源码解读(train.py文件)基于给定数据集实现持续预训练LLaMA-2—解析命令行参数→初始化配置(分布式训练环境colossalai+训练日志+加速插件)→数据预处理(初始化分词器+数据处理器+数据加载器)→模型训练(初始化模型/优化器/学习率调度器/梯度检查点/Flash-Attention/设置数据类型/是否加载预训练模型/从上一次训练点继续训
- 机器学习中的梯度下降是什么意思?
yuanpan
机器学习人工智能
梯度下降(GradientDescent)是机器学习中一种常用的优化算法,用于最小化损失函数(LossFunction)。通过迭代调整模型参数,梯度下降帮助模型逐步逼近最优解,从而提升模型的性能。1.核心思想梯度下降的核心思想是利用损失函数的梯度(即导数)来指导参数的更新方向。具体来说:梯度:梯度是损失函数对模型参数的偏导数,表示损失函数在当前参数点上的变化率。下降:通过沿着梯度的反方向(即损失函
- 嵌入式AI必备技能2-模型的压缩与加速
奥德彪123
嵌入式AI人工智能嵌入式
嵌入式AI必备技能2-模型的压缩与加速引言随着嵌入式AI设备的广泛应用,模型的计算效率和存储需求成为核心挑战。由于嵌入式系统通常资源受限,传统的深度学习模型往往难以直接部署。因此,模型压缩和加速技术应运而生,旨在减少计算量、降低存储需求,同时尽可能保持模型的准确性。本文介绍几种常见的模型压缩与加速方法,包括剪枝、低秩分解、量化、权值共享、知识蒸馏等,并探讨如何综合应用这些技术来优化AI模型。1.常
- 大模型高效优化技术全景解析:微调、量化、剪枝、梯度裁剪与蒸馏
时光旅人01号
人工智能剪枝算法深度学习数据挖掘人工智能
目录微调(Fine-tuning)量化(Quantization)剪枝(Pruning)梯度裁剪(GradientClipping)知识蒸馏(KnowledgeDistillation)技术对比与协同策略总结与趋势1.微调(Fine-tuning)核心思想在预训练模型(如BERT、GPT)基础上,通过领域数据调整参数,适配下游任务。方法流程预训练模型加载:加载通用模型权重(如HuggingFace
- 知识蒸馏中的温度参数 T(Temperature)的作用
彬彬侠
大模型Temperature温度参数知识蒸馏Distillationpytorchpython
知识蒸馏中的温度参数TTT(Temperature)的作用1.什么是温度参数TTT?在知识蒸馏(KnowledgeDistillation,KD)过程中,教师模型的输出通常是一个概率分布(通过softmax计算得到)。温度参数TTT控制softmax的平滑程度,使得学生模型可以更好地学习教师模型的知识。在标准的softmax函数中,类别iii的概率计算如下:Pi=ezi∑jezjP_i=\frac
- PyTorch深度学习框架60天进阶学习计划 - 第18天:模型压缩技术
凡人的AI工具箱
深度学习pytorch学习python人工智能
PyTorch深度学习框架60天进阶学习计划-第18天:模型压缩技术目录模型压缩技术概述知识蒸馏详解软标签生成策略KL散度损失推导温度参数调节结构化剪枝技术通道剪枝评估准则L1-norm剪枝算法APoZ剪枝算法量化训练基础量化类型与精度PyTorch量化API剪枝与量化协同优化Torch.fx动态计算图修改自动化模型压缩流程实现实战案例:ResNet模型压缩性能评估与分析进阶挑战与思考1.模型压缩
- 模型训练和推理
一杯水果茶!
视觉与网络python梯度反向传播训练推理
训练时需要梯度,推理时不需要怎么理解“梯度”?计算图以及前向后向传播训练时需要梯度,推理时不需要阶段是否计算梯度是否反向传播是否更新参数用例写法训练✅✅✅loss训练默认即可,requires_grad=True推理❌❌❌采样、预测、部署用@torch.inference_mode()或withtorch.no_grad()训练阶段必须开启梯度计算:要计算loss(损失函数)然后通过loss.ba
- 知识蒸馏论文精选——《Graph-Free Knowledge Distillation for Graph Neural Networks 》
宇直不会放弃
GKD-Outputlayer人工智能数据挖掘机器学习深度学习神经网络cnnpytorch
(GFKD)无图知识蒸馏《Graph-FreeKnowledgeDistillationforGraphNeuralNetworks》2021作者是XiangDeng和ZhongfeiZhang,来自纽约州立大学宾汉姆顿分校论文地址见文末摘要知识蒸馏(KnowledgeDistillation,KD)通过强制学生网络模仿在训练数据上预训练老师网络的输出,从而将知识从老师网络转移到学生网络。然而,在
- LWC-KD:图结构感知的推荐系统增量学习对比知识蒸馏
宇直不会放弃
GKD-Middlelayer人工智能pythonchatgptgpu算力深度学习机器学习神经网络
LWC-KD:图结构感知的推荐系统增量学习对比知识蒸馏《GraphStructureAwareContrastiveKnowledgeDistillationforIncrementalLearninginRecommenderSystems》2021作者是YueningWang、YingxueZhang和MarkCoates论文地址:https://dl.acm.org/doi/10.1145/
- 【大模型】DeepSeek-R1-Distill-Qwen部署及API调用
油泼辣子多加
大模型实战算法gptlangchain人工智能
DeepSeek-R1-Distill-Qwen是由中国人工智能公司深度求索(DeepSeek)开发的轻量化大语言模型,基于阿里巴巴的Qwen系列模型通过知识蒸馏技术优化而来。当前模型开源后,我们可以将其部署,使用API方式进行本地调用1.部署环境本文中的部署基础环境如下所示:PyTorch2.5.1Python3.12(ubuntu22.04)Cuda12.4GPURTX3090(24GB)*1
- DeepSeek R1-32B医疗大模型的完整微调实战分析(全码版)
Allen_LVyingbo
医疗高效编程研发健康医疗人工智能python
DeepSeekR1-32B微调实战指南├──1.环境准备│├──1.1硬件配置││├─全参数微调:4*A10080GB││└─LoRA微调:单卡24GB│├──1.2软件依赖││├─PyTorch2.1.2+CUDA││└─Unsloth/ColossalAI│└──1.3模型加载│├─4bit量化加载│└─FlashAttention2加速├──2.数据集构建│├──2.1数据源││├─CMD
- tensorflow keras 报错 :No gradients provided for any variable 原因与解决办法
研志必有功
tensorflow报错tensorflow深度学习机器学习神经网络自然语言处理
错误分析Nogradientsprovidedforanyvariable这个意思是没有梯度给已知的所有函数,为什么会出现这个错误呢,因为在深度学习中,梯度的更新是由于反向传播算法的实现的,如果损失函数没有与已知的任何(除输入)层关联,那么,损失函数就无法求出关于各个函数的梯度,导致错误解决办法例如损失函数defcontrastive_loss_layer(left_inputs,right_in
- 2025天梯训练1
osir.
c++多关键字最短路
PTA|L3-1直捣黄龙30分思路:多关键字最短路,同时还要记录最短路径条数。typedefstructnode{intfrom,d,pass,kl;booloperatorx.d;if(pass!=x.pass)returnpassha;unordered_mapantHa;intenemys[205];intidx=0;vector>vct[205];intdis[205];//到达i城镇的最
- 《探秘课程蒸馏体系“三阶训练法”:解锁知识层级递进式迁移的密码》
人工智能深度学习
在人工智能与教育科技深度融合的时代,如何高效地实现知识传递与能力提升,成为众多学者、教育工作者以及技术专家共同探索的课题。课程蒸馏体系中的“三阶训练法”,作为一种创新的知识迁移模式,正逐渐崭露头角,为解决这一难题提供了全新的思路。从概念上讲,课程蒸馏体系借鉴了机器学习中知识蒸馏的思想,将复杂、庞大的知识体系进行提炼和压缩,使其能够更有效地被学习者吸收。而“三阶训练法”作为该体系的核心,通过精心设计
- 新冠病毒感染人数预测(基于回归的神经网络项目)
|柳贯一|
深度学习回归神经网络数据挖掘
写在前面:我们做的事情:我们的目的是要得到一个好的模型,这个模型能够让我们预测好的y首先拿到一批数据,这批数据有x和准确的y,我们让x通过模型得到预测的y,让预测的y与准确的y去计算差距loss,根据这个差距loss去不断改变优化模型。一、神经网络项目的流程1、数据预处理:(深度学习最主要的数据处理,要先拿到数据)使用CovidDataset类加载和处理数据。根据all_feature参数选择特征
- Triplet Loss原理及 Python实现
AIGC_ZY
DiffusionModelspython深度学习机器学习
Tripletloss最初是谷歌在FaceNet:AUnifiedEmbeddingforFaceRecognitionandClustering论文中提出的,可以学到较好的人脸的embeddingTripletLoss是一种用于训练特征嵌入(featureembedding)的损失函数,广泛应用于人脸识别、图像检索等需要度量相似性的任务。其核心思想是通过学习将同类样本的嵌入距离拉近,不同类样本的
- 图像识别技术与应用课后总结(14)
一元钱面包
人工智能
训练模型加载预处理数据集:可以借助PyTorch的数据处理工具,如torch.utils和torchvision等定义损失函数:既可以自定义,也能使用PyTorch内置的,像回归任务常用nn.MSELoss(),分类任务常用nn.BCELoss()定义优化方法:PyTorch的优化方法封装在torch.optim中,基于基类optim.Optimizer,能实现自定义优化步骤。常用的优化算法如梯度
- AI语言模型的技术之争:DeepSeek与ChatGPT的架构与训练揭秘
m0_74825466
面试学习路线阿里巴巴chatgpt人工智能语言模型
-CSDN博客目录第一章:DeepSeek与ChatGPT的基础概述1.1DeepSeek简介1.2ChatGPT简介第二章:模型架构对比2.1Transformer架构:核心相似性2.2模型规模与参数第三章:训练方法与技术3.1预训练与微调:基础训练方法3.2强化学习与奖励建模3.3知识蒸馏与量化技术第四章:训练数据与应用4.1训练数据集:数据源的差异4.2特定领域任务:应用场景的差异第五章:代
- 智能模型轻量化:知识蒸馏技术如何重塑AI部署格局
人工智能
智能模型轻量化:知识蒸馏技术如何重塑AI部署格局前言在人工智能技术高速迭代的今天,模型优化领域正经历着静默的革命。当我们惊叹于DeepSeek在自然语言处理上的惊艳表现时,一个关键问题逐渐浮出水面:如何让这些"庞然大物"真正走入现实场景?知识蒸馏技术作为模型压缩领域的突破性方案,正在为AI技术的普惠化开辟新路径。一、技术本质的解构与重构知识蒸馏颠覆了传统模型训练的范式,构建了"师生传承"的新型学习
- DeepSeek到TinyLSTM的知识蒸馏
猴的哥儿
笔记python机器学习深度学习神经网络AI编程
一、架构设计与适配模型结构对比:DeepSeek(教师模型):基于Transformer,多头自注意力机制,层数≥12,隐藏层维度≥768TinyLSTM(学生模型):单层双向LSTM,隐藏单元128,全连接输出层表示空间对齐:classAdapter(nn.Module):def__init__(self,in_dim=768,out_dim=128):super().__init__()sel
- python valueerror函数使用_python – 具有张量流的语义分段 – 损失函数中的ValueError(稀疏 – softmax)...
创新工场
pythonvalueerror函数使用
我的输入图像数据暂时是750x750x3RGB图像.在通过网络运行后,我使用shape[batch_size,750,2]的logits进行损失计算.这是一个二进制分类–我这里有两个类,[0,1]在我的标签中(形状[batch_sizex750x750].这些进入损失函数,如下:defloss(logits,labels,num_classes):withtf.name_scope('lossmi
- DynamicSparse-MobileNet (DSMNet) 用于低功耗图像分类
闲人编程
人工智能实战教程—论文创新点分类人工智能数据挖掘DSMNet动态稀疏熵感知自适应
目录DynamicSparse-MobileNet(DSMNet)用于低功耗图像分类一、模型背景与动机二、模型创新点详细解析1.动态稀疏计算路径2.自适应通道缩放3.熵感知知识蒸馏三、数据集与预处理四、网络结构详解1.输入层与熵估计模块2.动态稀疏卷积块3.熵感知分类头五、模型优化策略1.优化器设计——Prodigy优化器2.动态计算损失3.损失函数设计4.正则化技术5.防止过拟合六、网络结构图与
- 线性回归s
三排扣
线性回归pytorch深度学习
1api的调用损失函数假设函数优化函数importtorchimporttorch.nnasnnimporttorch.optimasoptim#损失函数deftest1():#初始化损失函数对象criterion=nn.MSELoss()y_pread=torch.randn(3,5,requires_grad=True)y_test=torch.randn(3,5)#计算损失loss=crit
- ValueError: Tensor conversion requested dtype int64 for Tensor with dtype float64: ‘Tensor(“loss/a
初识-CV
机器学习kerasKL散度相对熵intTensorFlowkeras
用keras以TensorFlow作为后端重写相对熵函数,报错。。。defKL(y_true,y_pred):weights=K.sum(K.cast(K.argmax(y_true,axis=1)*K.log(K.argmax(y_true,axis=1)/K.argmax(y_pred,axis=1)),dtype='float32'))returnweights*losses.categor
- 戴尔笔记本win8系统改装win7系统
sophia天雪
win7戴尔改装系统win8
戴尔win8 系统改装win7 系统详述
第一步:使用U盘制作虚拟光驱:
1)下载安装UltraISO:注册码可以在网上搜索。
2)启动UltraISO,点击“文件”—》“打开”按钮,打开已经准备好的ISO镜像文
- BeanUtils.copyProperties使用笔记
bylijinnan
java
BeanUtils.copyProperties VS PropertyUtils.copyProperties
两者最大的区别是:
BeanUtils.copyProperties会进行类型转换,而PropertyUtils.copyProperties不会。
既然进行了类型转换,那BeanUtils.copyProperties的速度比不上PropertyUtils.copyProp
- MyEclipse中文乱码问题
0624chenhong
MyEclipse
一、设置新建常见文件的默认编码格式,也就是文件保存的格式。
在不对MyEclipse进行设置的时候,默认保存文件的编码,一般跟简体中文操作系统(如windows2000,windowsXP)的编码一致,即GBK。
在简体中文系统下,ANSI 编码代表 GBK编码;在日文操作系统下,ANSI 编码代表 JIS 编码。
Window-->Preferences-->General -
- 发送邮件
不懂事的小屁孩
send email
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.MultiPartEmail;
- 动画合集
换个号韩国红果果
htmlcss
动画 指一种样式变为另一种样式 keyframes应当始终定义0 100 过程
1 transition 制作鼠标滑过图片时的放大效果
css
.wrap{
width: 340px;height: 340px;
position: absolute;
top: 30%;
left: 20%;
overflow: hidden;
bor
- 网络最常见的攻击方式竟然是SQL注入
蓝儿唯美
sql注入
NTT研究表明,尽管SQL注入(SQLi)型攻击记录详尽且为人熟知,但目前网络应用程序仍然是SQLi攻击的重灾区。
信息安全和风险管理公司NTTCom Security发布的《2015全球智能威胁风险报告》表明,目前黑客攻击网络应用程序方式中最流行的,要数SQLi攻击。报告对去年发生的60亿攻击 行为进行分析,指出SQLi攻击是最常见的网络应用程序攻击方式。全球网络应用程序攻击中,SQLi攻击占
- java笔记2
a-john
java
类的封装:
1,java中,对象就是一个封装体。封装是把对象的属性和服务结合成一个独立的的单位。并尽可能隐藏对象的内部细节(尤其是私有数据)
2,目的:使对象以外的部分不能随意存取对象的内部数据(如属性),从而使软件错误能够局部化,减少差错和排错的难度。
3,简单来说,“隐藏属性、方法或实现细节的过程”称为——封装。
4,封装的特性:
4.1设置
- [Andengine]Error:can't creat bitmap form path “gfx/xxx.xxx”
aijuans
学习Android遇到的错误
最开始遇到这个错误是很早以前了,以前也没注意,只当是一个不理解的bug,因为所有的texture,textureregion都没有问题,但是就是提示错误。
昨天和美工要图片,本来是要背景透明的png格式,可是她却给了我一个jpg的。说明了之后她说没法改,因为没有png这个保存选项。
我就看了一下,和她要了psd的文件,还好我有一点
- 自己写的一个繁体到简体的转换程序
asialee
java转换繁体filter简体
今天调研一个任务,基于java的filter实现繁体到简体的转换,于是写了一个demo,给各位博友奉上,欢迎批评指正。
实现的思路是重载request的调取参数的几个方法,然后做下转换。
- android意图和意图监听器技术
百合不是茶
android显示意图隐式意图意图监听器
Intent是在activity之间传递数据;Intent的传递分为显示传递和隐式传递
显式意图:调用Intent.setComponent() 或 Intent.setClassName() 或 Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了Intent应该传递给哪个组件。
隐式意图;不指明调用的名称,根据设
- spring3中新增的@value注解
bijian1013
javaspring@Value
在spring 3.0中,可以通过使用@value,对一些如xxx.properties文件中的文件,进行键值对的注入,例子如下:
1.首先在applicationContext.xml中加入:
<beans xmlns="http://www.springframework.
- Jboss启用CXF日志
sunjing
logjbossCXF
1. 在standalone.xml配置文件中添加system-properties:
<system-properties> <property name="org.apache.cxf.logging.enabled" value=&
- 【Hadoop三】Centos7_x86_64部署Hadoop集群之编译Hadoop源代码
bit1129
centos
编译必需的软件
Firebugs3.0.0
Maven3.2.3
Ant
JDK1.7.0_67
protobuf-2.5.0
Hadoop 2.5.2源码包
Firebugs3.0.0
http://sourceforge.jp/projects/sfnet_findbug
- struts2验证框架的使用和扩展
白糖_
框架xmlbeanstruts正则表达式
struts2能够对前台提交的表单数据进行输入有效性校验,通常有两种方式:
1、在Action类中通过validatexx方法验证,这种方式很简单,在此不再赘述;
2、通过编写xx-validation.xml文件执行表单验证,当用户提交表单请求后,struts会优先执行xml文件,如果校验不通过是不会让请求访问指定action的。
本文介绍一下struts2通过xml文件进行校验的方法并说
- 记录-感悟
braveCS
感悟
再翻翻以前写的感悟,有时会发现自己很幼稚,也会让自己找回初心。
2015-1-11 1. 能在工作之余学习感兴趣的东西已经很幸福了;
2. 要改变自己,不能这样一直在原来区域,要突破安全区舒适区,才能提高自己,往好的方面发展;
3. 多反省多思考;要会用工具,而不是变成工具的奴隶;
4. 一天内集中一个定长时间段看最新资讯和偏流式博
- 编程之美-数组中最长递增子序列
bylijinnan
编程之美
import java.util.Arrays;
import java.util.Random;
public class LongestAccendingSubSequence {
/**
* 编程之美 数组中最长递增子序列
* 书上的解法容易理解
* 另一方法书上没有提到的是,可以将数组排序(由小到大)得到新的数组,
* 然后求排序后的数组与原数
- 读书笔记5
chengxuyuancsdn
重复提交struts2的token验证
1、重复提交
2、struts2的token验证
3、用response返回xml时的注意
1、重复提交
(1)应用场景
(1-1)点击提交按钮两次。
(1-2)使用浏览器后退按钮重复之前的操作,导致重复提交表单。
(1-3)刷新页面
(1-4)使用浏览器历史记录重复提交表单。
(1-5)浏览器重复的 HTTP 请求。
(2)解决方法
(2-1)禁掉提交按钮
(2-2)
- [时空与探索]全球联合进行第二次费城实验的可能性
comsci
二次世界大战前后,由爱因斯坦参加的一次在海军舰艇上进行的物理学实验 -费城实验
至今给我们大家留下很多迷团.....
关于费城实验的详细过程,大家可以在网络上搜索一下,我这里就不详细描述了
在这里,我的意思是,现在
- easy connect 之 ORA-12154: TNS: 无法解析指定的连接标识符
daizj
oracleORA-12154
用easy connect连接出现“tns无法解析指定的连接标示符”的错误,如下:
C:\Users\Administrator>sqlplus username/
[email protected]:1521/orcl
SQL*Plus: Release 10.2.0.1.0 – Production on 星期一 5月 21 18:16:20 2012
Copyright (c) 198
- 简单排序:归并排序
dieslrae
归并排序
public void mergeSort(int[] array){
int temp = array.length/2;
if(temp == 0){
return;
}
int[] a = new int[temp];
int
- C语言中字符串的\0和空格
dcj3sjt126com
c
\0 为字符串结束符,比如说:
abcd (空格)cdefg;
存入数组时,空格作为一个字符占有一个字节的空间,我们
- 解决Composer国内速度慢的办法
dcj3sjt126com
Composer
用法:
有两种方式启用本镜像服务:
1 将以下配置信息添加到 Composer 的配置文件 config.json 中(系统全局配置)。见“例1”
2 将以下配置信息添加到你的项目的 composer.json 文件中(针对单个项目配置)。见“例2”
为了避免安装包的时候都要执行两次查询,切记要添加禁用 packagist 的设置,如下 1 2 3 4 5
- 高效可伸缩的结果缓存
shuizhaosi888
高效可伸缩的结果缓存
/**
* 要执行的算法,返回结果v
*/
public interface Computable<A, V> {
public V comput(final A arg);
}
/**
* 用于缓存数据
*/
public class Memoizer<A, V> implements Computable<A,
- 三点定位的算法
haoningabc
c算法
三点定位,
已知a,b,c三个顶点的x,y坐标
和三个点都z坐标的距离,la,lb,lc
求z点的坐标
原理就是围绕a,b,c 三个点画圆,三个圆焦点的部分就是所求
但是,由于三个点的距离可能不准,不一定会有结果,
所以是三个圆环的焦点,环的宽度开始为0,没有取到则加1
运行
gcc -lm test.c
test.c代码如下
#include "stdi
- epoll使用详解
jimmee
clinux服务端编程epoll
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在linu
- Hibernate对Enum的映射的基本使用方法
linzx0212
enumHibernate
枚举
/**
* 性别枚举
*/
public enum Gender {
MALE(0), FEMALE(1), OTHER(2);
private Gender(int i) {
this.i = i;
}
private int i;
public int getI
- 第10章 高级事件(下)
onestopweb
事件
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- 孙子兵法
roadrunners
孙子兵法
始计第一
孙子曰:
兵者,国之大事,死生之地,存亡之道,不可不察也。
故经之以五事,校之以计,而索其情:一曰道,二曰天,三曰地,四曰将,五
曰法。道者,令民于上同意,可与之死,可与之生,而不危也;天者,阴阳、寒暑
、时制也;地者,远近、险易、广狭、死生也;将者,智、信、仁、勇、严也;法
者,曲制、官道、主用也。凡此五者,将莫不闻,知之者胜,不知之者不胜。故校
之以计,而索其情,曰
- MySQL双向复制
tomcat_oracle
mysql
本文包括:
主机配置
从机配置
建立主-从复制
建立双向复制
背景
按照以下简单的步骤:
参考一下:
在机器A配置主机(192.168.1.30)
在机器B配置从机(192.168.1.29)
我们可以使用下面的步骤来实现这一点
步骤1:机器A设置主机
在主机中打开配置文件 ,
- zoj 3822 Domination(dp)
阿尔萨斯
Mina
题目链接:zoj 3822 Domination
题目大意:给定一个N∗M的棋盘,每次任选一个位置放置一枚棋子,直到每行每列上都至少有一枚棋子,问放置棋子个数的期望。
解题思路:大白书上概率那一张有一道类似的题目,但是因为时间比较久了,还是稍微想了一下。dp[i][j][k]表示i行j列上均有至少一枚棋子,并且消耗k步的概率(k≤i∗j),因为放置在i+1~n上等价与放在i+1行上,同理