热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

libsvm使用介绍中文版

转http:blog.sina.com.cnsblog_59d470310100guu3.html1.LIBSVM软件包简介LIBSVM是台湾大学林智仁(Chih-JenLin)博

转http://blog.sina.com.cn/s/blog_59d470310100guu3.html

1. LIBSVM 软件包简介
LIBSVM 是台湾大学林智仁(Chih-Jen Lin)博士等开发设计的一个操作简单、易于使用、快速有效的通用SVM 软件包,可以解决分类问题(包括C- SVC、n - SVC )、回归问题(包括e - SVR、n - SVR )以及分布估计(one-class-SVM )等问题,提供了线性、多项式、径向基和S形函数四种常用的核函数供选择,可以有效地解决多类问题、交叉验证选择参数、对不平衡样本加权、多类问题的概率估计等。LIBSVM 是一个开源的软件包,需要者都可以免费的从作者的个人主页http://www.csie.ntu.edu.tw/~cjlin/ 处获得。他不仅提供了LIBSVM的C++语言的算法源代码,还提供了Python、Java、R、MATLAB、Perl、Ruby、LabVIEW
以及C#.net 等各种语言的接口,可以方便的在Windows 或UNIX 平台下使用,
也便于科研工作者根据自己的需要进行改进(譬如设计使用符合自己特定问题需要的核函数等)。另外还提供了WINDOWS 平台下的可视化操作工具SVM-toy,并且在进行模型参数选择时可以绘制出交叉验证精度的等高线图。

2. LIBSVM 使用方法简介
LIBSVM 在给出源代码的同时还提供了Windows操作系统下的可执行文件,包括:进行支持向量机训练的svmtrain.exe;根据已获得的支持向量机模型对数据集进行预测的svmpredict.exe;以及对训练数据与测试数据进行简单缩操作的svmscale.exe。它们都可以直接在DOS 环境中使用。如果下载的包中只有C++
的源代码,则也可以自己在VC等软件上编译生成可执行文件。

LIBSVM 使用的一般步骤是:
1) 按照LIBSVM软件包所要求的格式准备数据集;
2) 对数据进行简单的缩放操作;
3) 考虑选用RBF 核函数2 K(x,y) e x y = -g - ;
4) 采用交叉验证选择最佳参数C与g ;
5) 采用最佳参数C与g 对整个训练集进行训练获取支持向量机模型;
6) 利用获取的模型进行测试与预测。

一. LIBSVM 使用的数据格式
LIBSVM使用的训练数据和测试数据文件格式如下:
&#xff1a; &#xff1a;<2> …

其中 是训练数据集的目标值&#xff0c;对于分类&#xff0c;它是标识某类的整数(支持多个类)&#xff1b;对于回归&#xff0c;是任意实数。是以1 开始的整数&#xff0c;表示特征的序号&#xff1b;为实数&#xff0c;也就是我们常说的特征值或自变量。当特征值为0 时&#xff0c;特征序号与特征值都可以同时省略&#xff0c;即index可以是不连续的自然数。与第一个特征序号、前一个特征值与后一个特征序号之间用空格隔开。测试数据文件中的label 只用于计算准确度或误差&#xff0c;如果它是未知的&#xff0c;只需用任意一个数填写这一栏&#xff0c;也可以空着不填。例如&#xff1a;
&#43;1 1:0.708 2:1 3:1 4:-0.320 5:-0.105 6:-1 8:1.21

二. svmscale 的用法
对数据集进行缩放的目的在于&#xff1a;
1&#xff09;避免一些特征值范围过大而另一些特征值范围过小&#xff1b;
2&#xff09;避免在训练时为了计算核函数而计算内积的时候引起数值计算的困难。因此&#xff0c;通常将数据缩放到[ -1,1]或者是[0,1]之间。
用法&#xff1a;svmscale [-l lower] [-u upper] [-y y_lower y_upper]
[-s save_filename] [-r restore_filename] filename
&#xff08;缺省值&#xff1a; lower &#61; -1&#xff0c;upper &#61; 1&#xff0c;没有对y进行缩放&#xff09;

其中&#xff0c;
-l&#xff1a;数据下限标记&#xff1b;lower&#xff1a;缩放后数据下限&#xff1b;
-u&#xff1a;数据上限标记&#xff1b;upper&#xff1a;缩放后数据上限&#xff1b;
-y&#xff1a;是否对目标值同时进行缩放&#xff1b;y_lower为下限值&#xff0c;y_upper为上限值&#xff1b;
-s save_filename&#xff1a;表示将缩放的规则保存为文件save_filename&#xff1b;
-r restore_filename&#xff1a;表示将缩放规则文件restore_filename载入后按此缩放&#xff1b;
filename&#xff1a;待缩放的数据文件&#xff08;要求满足前面所述的格式&#xff09;。

缩放规则文件可以用文本浏览器打开&#xff0c;看到其格式为&#xff1a;
lower upper
lval1 uval1
lval2 uval2

其中的lower 与upper 与使用时所设置的lower 与upper 含义相同&#xff1b;index 表
示特征序号&#xff1b;lval 为该特征对应转换后下限lower 的特征值&#xff1b;uval 为对应于转换后上限upper 的特征值。
数据集的缩放结果在此情况下通过DOS窗口输出&#xff0c;当然也可以通过DOS的

文件重定向符号“>”将结果另存为指定的文件。
使用实例&#xff1a;
1) svmscale –s train3.range train3>train3.scale
表示采用缺省值&#xff08;即对属性值缩放到[ -1,1]的范围&#xff0c;对目标值不进行缩放&#xff09;
对数据集train3 进行缩放操作&#xff0c;其结果缩放规则文件保存为train3.range&#xff0c;缩放集的缩放结果保存为train3.scale。
2&#xff09; svmscale –r train3.range test3>test3.scale
表示载入缩放规则train3.range 后按照其上下限对应的特征值和上下限值线性的地对数据集test3 进行缩放&#xff0c;结果保存为test3.scale。

三. svmtrain 的用法
svmtrain实现对训练数据集的训练&#xff0c;获得SVM模型。
用法&#xff1a; svmtrain [options] training_set_file [model_file]

其中&#xff0c;
options&#xff08;操作参数&#xff09;&#xff1a;可用的选项即表示的涵义如下所示
-s svm类型&#xff1a;设置SVM 类型&#xff0c;默认值为0&#xff0c;可选类型有&#xff1a;
0 -- C- SVC
1 -- n - SVC
2 -- one-class-SVM
3 -- e - SVR
4 -- n - SVR

-t 核函数类型&#xff1a;设置核函数类型&#xff0c;默认值为2&#xff0c;可选类型有&#xff1a;
0 -- 线性核&#xff1a;u&#39;*v
1 -- 多项式核&#xff1a; (g*u&#39;*v&#43; coef 0)deg ree
2 -- RBF 核&#xff1a;e( u v 2) g -
3 -- sigmoid 核&#xff1a;tanh(g*u&#39;*v&#43; coef 0)

-d degree&#xff1a;核函数中的degree设置&#xff0c;默认值为3&#xff1b; -g g &#xff1a;设置核函数中的g &#xff0c;默认值为1/ k &#xff1b;
-r coef 0&#xff1a;设置核函数中的coef 0&#xff0c;默认值为0&#xff1b;
-c cost&#xff1a;设置C- SVC、e - SVR、n - SVR中从惩罚系数C&#xff0c;默认值为1&#xff1b;
-n n &#xff1a;设置n - SVC、one-class-SVM 与n - SVR 中参数n &#xff0c;默认值0.5&#xff1b;
-p e &#xff1a;设置n - SVR的损失函数中的e &#xff0c;默认值为0.1&#xff1b;
-m cachesize&#xff1a;设置cache内存大小&#xff0c;以MB为单位&#xff0c;默认值为40&#xff1b;
-e e &#xff1a;设置终止准则中的可容忍偏差&#xff0c;默认值为0.001&#xff1b;
-h shrinking&#xff1a;是否使用启发式&#xff0c;可选值为0 或1&#xff0c;默认值为1&#xff1b;
-b 概率估计&#xff1a;是否计算SVC或SVR的概率估计&#xff0c;可选值0 或1&#xff0c;默认0&#xff1b;
-wi weight&#xff1a;对各类样本的惩罚系数C加权&#xff0c;默认值为1&#xff1b;
-v n&#xff1a;n折交叉验证模式。
其中-g选项中的k是指输入数据中的属性数。操作参数 -v 随机地将数据剖分为n 部分并计算交叉检验准确度和均方根误差。以上这些参数设置可以按照SVM 的类型和核函数所支持的参数进行任意组合&#xff0c;如果设置的参数在函数或SVM 类型中没有也不会产生影响&#xff0c;程序不会接受该参数&#xff1b;如果应有的参数设置不正确&#xff0c;参数将采用默认值。training_set_file是要进行训练的数据集&#xff1b;model_file是训练结束后产生的模型文件&#xff0c;该参数如果不设置将采用默认的文件名&#xff0c;也可以设置成自己惯用的文件名。

使用实例&#xff1a;
1&#xff09;svmtrain train3.scale train3.model
训练train3.scale&#xff0c;将模型保存于文件train3.model&#xff0c;并在dos窗口中输出如下

结果&#xff1a;
optimization finished, #iter &#61; 1756
nu &#61; 0.464223
obj &#61; -551.002342, rho &#61; -0.337784
nSV &#61; 604, nBSV &#61; 557
Total nSV &#61; 604

其中&#xff0c;#iter为迭代次数&#xff0c;nu 与前面的操作参数-n n 相同&#xff0c;obj为SVM文件
转换为的二次规划求解得到的最小值&#xff0c;rho 为判决函数的常数项b&#xff0c;nSV 为支持
向量个数&#xff0c;nBSV为边界上的支持向量个数&#xff0c;Total nSV为支持向量总个数。
训练后的模型保存为文件train3.model&#xff0c;用记事本等文本浏览器打开可以看到其内容如下&#xff08;其后“%”后内容为笔者所加注释&#xff09;&#xff1a;
svm_type c_svc % 训练所采用的svm类型&#xff0c;此处为C- SVC
kernel_type rbf % 训练采用的核函数类型&#xff0c;此处为RBF核
gamma 0.047619 % 与操作参数设置中的g 含义相同
nr_class 2 % 分类时的类别数&#xff0c;此处为两分类问题
total_sv 604 % 总共的支持向量个数
rho -0.337784 % 决策函数中的常数项b
label 0 1 % 类别标签
nr_sv 314 290 % 各类别标签对应的支持向量个数
SV % 以下为支持向量
1 1:-0.963808 2:0.906788 ... 19:-0.197706 20:-0.928853 21:-1
1 1:-0.885128 2:0.768219 ... 19:-0.452573 20:-0.980591 21:-1
... ... ...
1 1:-0.847359 2:0.485921 ... 19:-0.541457 20:-0.989077 21:-1

% 对于分类问题&#xff0c;上面的支持向量的各列含义与训练数据集相同&#xff1b;对于回归问题&#xff0c;略有不同&#xff0c;与训练数据中的标签label&#xff08;即y值&#xff09;所对应的位置在模型文件的支持向量中现在存放的是Lagrange 系数a 值&#xff0c;即为下面决策函数公式中的a 值&#xff1a;

* *

1

() ( )( ( ) ( )) ( ) ( , )

( , )

k

i i i i i i

i i sv

i i

i sv

fx a a x x b a a k x x b

ak x x b

&#61;   &#61; - F F &#43; &#61; - &#43;

&#61; &#43; g

四. svmpredict 的用法
svmpredict 是根据训练获得的模型&#xff0c;对数据集合进行预测。
用法&#xff1a;svmpredict [options] test_file model_file output_file

options&#xff08;操作参数&#xff09;&#xff1a;
-b probability_estimates&#xff1a;是否需要进行概率估计预测&#xff0c;可选值为0 或者1&#xff0c;默认值为0。

model_file 是由svmtrain 产生的模型文件&#xff1b;test_file 是要进行预测的数据文件&#xff1b;output_file 是svmpredict 的输出文件&#xff0c;表示预测的结果值。svmpredict 没有其它的选项。

 

&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;

最近的工作要用到支持向量机(SVM), 对算法不是很懂, 但是总要把用法弄明白吧, 于是就想把它的文档翻译一下, 自己弄明白吧, 也给其他人带来点方便

先给出libsvm的下载地址:   要下载就点我吧

英文文档请见压缩包内的 README 文件(用写字板打开就可以看到内容了)


其中, tools目录下的README的翻译在这里.


--------------------------------------------------------------------------------

libsvm-2.88中文文档

中文文档由 pwwang 翻译, 欢迎转载, 转载请注明出处!


 

Libsvm是一个简单、易用、有效的SVM分类和回归软件。它解决了C-SVM分类、nu-SVM分类、one-class-SVM、epsilon-SVM回归和nu-SVM回归。它还为C-SVM提供了一个自动模型选择工具。这个文档将解释libsvm的用法。

Libsvm可以从这里得到&#xff1a;http://www.csie.ntu.edu.tw/~cjlin/libsvm
在使用libsvm之前先阅读COPYRIGHT文件。

目录
&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;

&#xff0d;快速开始
&#xff0d;安装和数据格式
&#xff0d;“svm-train”的用法
&#xff0d;“svm-predict”的用法
&#xff0d;“svm-scale”的用法
&#xff0d;实际使用技巧
&#xff0d;例子
&#xff08;后面的部分不作翻译&#xff09;

 

快速开始
&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;

如果你是SVM的一个新手&#xff0c;并且数据不大&#xff0c;那么在安装完成之后请打开tools目录使用easy.py。它将把一切全自动化&#xff0c;从数据规化到参数选择。

用法&#xff1a;easy.py training_file [test_file]

你可以在“tools/README”中找到关于参数选择的更多信息。

 

安装和数据格式
&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;

在Unix系统中&#xff0c;输入make来生成“svm-train”和“svm-predict”程序。不带参数地运行它们可以显示他们的用法。

在其他系统中&#xff0c;参考“Makefile”来生成它们&#xff08;例如&#xff1a;你可以参数这篇文档中的“生成Windows可执行文件”&#xff09;或者使用预生成二进制文件&#xff08;Windows二进制文件在”windows“目录中&#xff09;

训练和测试数据文件中的格式是&#xff1a;

每行包含一个实例&#xff0c;并且以“n”&#xff08;译者注&#xff1a;换行符&#xff09;结束。对于分类来说&#xff0c;

这个包内的一个分类数据的例子是“heart_scale”。可以使用“tools/checkdata.py”来检测你数据格式是否正确。&#xff08;详见“tools/README”&#xff09;。

输入“svm-train heart_scale”&#xff0c;程序将读取训练数据并输出模型文件“hear_scale.model”。如果你有一个测试集叫“heart_scale.t”&#xff0c;那么输入“svm-predict heart_scale.t heart_scale.model output” 来检查预测的准确性。“output”文件包含了预测的类标签。

这个包里还有一些其他的有用的程序&#xff1a;

svm-scale&#xff1a;

规化你的输入数据文件

svm-toy&#xff1a;

这是一个简单的图形界面&#xff0c;它将在一个面板上显示SVM如果分离数据。你可以在窗口里单击来画数据点。使用“change”按钮来选择类1,2或者3&#xff08;例如&#xff1a;一直到3个类都是支持的&#xff09;&#xff0c;“load”按钮用来从文件里装入数据&#xff0c;“save”按钮用来保存数据到一个文件&#xff0c;“run”按钮用来获取一个SVM模型&#xff0c;“clear”按钮用来清除窗口。

你可以窗口的底部输入选项&#xff0c;选项的符号规则和“svm-train”一样。

注意“load”和“save”只考虑了分类情况下的数据&#xff0c;而没有考虑回归的情况。每一个数据库有一个标签&#xff08;颜色&#xff09;&#xff0c;它必须是1&#xff0c;2或者3&#xff0c;并且两个属性&#xff08;x和y值&#xff09;范围必须是[0&#xff0c;1]。

在各个目录中输入make来生成它们。

你需要Qt库来生成Qt版本&#xff08;可以在这里得到&#xff1a;http://www.trolltech.com&#xff09;

你需要GTK&#43;库来生成GTK版本&#xff08;可以在这里得到&#xff1a;http://www.gtk.org&#xff09;

预生成的Windows二进制文件可“Windows”目录中。我们使用的是32-位机上的Visual C&#43;&#43;&#xff0c;所以最大缓存是2GB。

 

“svm-train”的用法
&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;

用法&#xff1a;svm-train [options] training_set_file [model_file]
选项&#xff1a;
-s svm_type : 设定SVM的类型 (default 0)
    0 — C-SVC
    1 — nu-SVC
    2 — one-class SVM
    3 — epsilon-SVR
    4 — nu-SVR
-t kernel_type : 设定核函数的类型 (default 2)
    0 — linear: u’*v
    1 — polynomial: (gamma*u’*v &#43; coef0)^degree
    2 — radial basis function: exp(-gamma*|u-v|^2)
    3 — sigmoid: tanh(gamma*u’*v &#43; coef0)
    4 — precomputed kernel (kernel values in training_set_file)
-d degree : set degree in kernel function (default 3)
-g gamma : set gamma in kernel function (default 1/k)
-r coef0 : set coef0 in kernel function (default 0)
-c cost : set the parameter C of C-SVC, epsilon-SVR, and nu-SVR (default 1)
-n nu : set the parameter nu of nu-SVC, one-class SVM, and nu-SVR (default 0.5)
-p epsilon : set the epsilon in loss function of epsilon-SVR (default 0.1)
-m cachesize : set cache memory size in MB (default 100)
-e epsilon : set tolerance of termination criterion (default 0.001)
-h shrinking: whether to use the shrinking heuristics, 0 or 1 (default 1)
-b probability_estimates: whether to train an SVC or SVR model for probability estimates, 0 or 1 (default 0)
-wi weight: set the parameter C of class i to weight*C in C-SVC (default 1)
-v n: n-fold cross validation mode

-g中的k表示输入数据中属性的数目。

-v选项把数据随机分成n个部分&#xff0c;并计算它们的交叉验证accuracy/mean方差&#xff08;不知道这个数学术语怎么翻译&#xff09;

通过libsvm FAQ来查看输出文件的含义。

 

“svm-predict”的用法
&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;

用法&#xff1a; svm-predict [options] test_file model_file output_file
选项&#xff1a;
-b probability_estimates: 是否预测概率估计, 0 或 1 (默认 0); one-class SVM只支持0

model_file是svm-train生成的model文件.
test_file 是你想预测的数据.
svm-predict 将把结果输出到output_file.

"svm-scale" Usage
&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;

用法&#xff1a; svm-scale [options] data_filename
选项&#xff1a;
-l lower : x 规化的最小值 (默认 -1)
-u upper : x 规化的最大值 (默认 &#43;1)
-y y_lower y_upper : y 规化的限定 (默认: 不规化y)
-s save_filename : 保存规化参数到 save_filename
-r restore_filename : 从restore_filename恢复规化参数

查看这个文档的’Examples’ 来获取例子。

 

实际使用技巧
&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;

* 你的数据的规化。例如&#xff0c;规化每一个属性到[0,1]或[-1,&#43;1]。
* 对于C-SVC&#xff0c;考虑使用tools目录中的模型选择工具。
* nu in nu-SVC/one-class-SVM/nu-SVR approximates the fraction of training  errors and support vectors.
* 如果分类数据不平衡&#xff08;如太多正数&#xff0c;极少负数&#xff09;&#xff0c;使用-wi尝试一个不同的罚分参数C。
* 为大的问题指定更大的缓存大小&#xff08;如 larger -m&#xff09;

Examples
&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;

> svm-scale -l -1 -u 1 -s range train > train.scale
> svm-scale -r range test > test.scale

Scale each feature of the training data to be in [-1,1]. Scaling factors are stored in the file range and then used for scaling the test data.

> svm-train -s 0 -c 5 -t 2 -g 0.5 -e 0.1 data_file

Train a classifier with RBF kernel exp(-0.5|u-v|^2), C&#61;10, and stopping tolerance 0.1.

> svm-train -s 3 -p 0.1 -t 0 data_file

Solve SVM regression with linear kernel u’v and epsilon&#61;0.1 in the loss function.

> svm-train -c 10 -w1 1 -w-1 5 data_file

Train a classifier with penalty 10 &#61; 1 * 10 for class 1 and penalty 50 &#61; 5 * 50 for class -1.

> svm-train -s 0 -c 100 -g 0.1 -v 5 data_file

Do five-fold cross validation for the classifier using the parameters C &#61; 100 and gamma &#61; 0.1

> svm-train -s 0 -b 1 data_file
> svm-predict -b 1 test_file data_file.model output_file

Obtain a model with probability information and predict test data with probability estimates

网上也有pdf下载的&#xff0c;只要搜“LIBSVM的简单介绍”就行了&#xff01;



推荐阅读
  • 通过网上的资料我自己的实际内核编译,我把对Linux内核编译的过程写在这里,也许对其他的Linux爱好者的编译学习有些帮助,其中很大部分是 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 服务器虚拟化存储设计,完美规划储存与资源,部署高性能虚拟化桌面
    规划部署虚拟桌面环境前,必须先估算目前所使用实体桌面环境的工作负载与IOPS性能,并慎选储存设备。唯有谨慎估算贴近实际的IOPS性能,才能 ... [详细]
  • 在测试软件或进行系统维护时,有时会遇到电脑蓝屏的情况,即便使用了沙盒环境也无法完全避免。本文将详细介绍常见的蓝屏错误代码及其解决方案,帮助用户快速定位并解决问题。 ... [详细]
  • 为何Compose与Swarm之后仍有Kubernetes的诞生?
    探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
  • 2019-2020学年 20174325 叶竞蔚 《网络对抗技术》实验六:Metasploit基础应用
    本实验旨在掌握Metasploit框架的基本应用方法,重点学习三种常见的攻击方式及其实施思路。实验内容包括一次主动攻击(如MS08-067)、一次针对浏览器的攻击(如MS11-050)以及一次针对客户端的攻击(如Adobe漏洞利用)。此外,还包括成功应用一个辅助模块。 ... [详细]
  • 大华股份2013届校园招聘软件算法类试题D卷
    一、填空题(共17题,每题3分,总共51分)1.设有inta5,*b,**c,执行语句c&b,b&a后,**c的值为________答:5 ... [详细]
  • 本文为初学者提供了一条清晰的学习路线,帮助他们逐步成长为优秀的Web开发人员。通过十个关键步骤,涵盖从基础到高级的各个方面,确保每位学习者都能找到适合自己的学习方向。 ... [详细]
  • 高端存储技术演进与趋势
    本文探讨了高端存储技术的发展趋势,包括松耦合架构、虚拟化、高性能、高安全性和智能化等方面。同时,分析了全闪存阵列和中端存储集群对高端存储市场的冲击,以及高端存储在不同应用场景中的发展趋势。 ... [详细]
  • 我有一个从C项目编译的.o文件,该文件引用了名为init_static_pool ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 探讨Redis的最佳应用场景
    本文将深入探讨Redis在不同场景下的最佳应用,包括其优势和适用范围。 ... [详细]
  • 在使用Eclipse进行调试时,如果遇到未解析的断点(unresolved breakpoint)并显示“未加载符号表,请使用‘file’命令加载目标文件以进行调试”的错误提示,这通常是因为调试器未能正确加载符号表。解决此问题的方法是通过GDB的`file`命令手动加载目标文件,以便调试器能够识别和解析断点。具体操作为在GDB命令行中输入 `(gdb) file `。这一步骤确保了调试环境能够正确访问和解析程序中的符号信息,从而实现有效的调试。 ... [详细]
  • 我正在使用 Ruby on Rails 构建个人网站。总体而言,RoR 是一个非常出色的工具,它提供了丰富的功能和灵活性,使得创建自定义页面变得既高效又便捷。通过利用其强大的框架和模块化设计,我可以轻松实现复杂的功能,同时保持代码的整洁和可维护性。此外,Rails 的社区支持也非常强大,为开发过程中遇到的问题提供了丰富的资源和解决方案。 ... [详细]
author-avatar
momo左
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有