首先进入E2LSH根目录下:
可以直接输入make命令,来编译E2LSH包,或者使用bin/compile脚本编译E2LSH包;
make
或者:
bin/compile
E2LSH包主要脚本是bin/lsh,该脚本的主要使用
bin/lsh R data_set_filequery_set_file [successProbability]
在该实验中的具体命令是:
bin/lsh 0.6 mnist1k.dtsmnist1k.q 0.9
执行后,结果如下:
查询结果输出到文件o中,命令:
bin/lsh 0.6 mnist1k.dtsmnist1k.q 0.9 >o
其参数计算结果输出文件是mnist1k.dts.params,文件内容是如下:
手工设置参数(manualsetting of the parameters)设计到两个脚本文件,分别是bin/lsh_computeParams和bin/lsh_fromParams;
其中bin/lsh_computeParams的用法如下:
bin/lsh_computeParams Rdata_set_file {query_set_file | .} [successProbability]
在该实验中的具体命令是:
bin/lsh_computeParams 0.6 mnist1k.dts mnist1k.q 0.9
执行后:
当然,该命令还可指定参数输出文件,如:
bin/lsh_computeParams0.6 mnist1k.dts mnist1k.q data_set_parameters_file
执行后,会将以上计算所得参数输出到文件data_set_parameters_file中去
其中bin/lsh_fromParams的用法如下:
bin/lsh_fromParams data_set_file query_set_filedata_set_params_file
在该实验中的具体命令是:
bin/lsh_fromParamsmnist1k.dts mnist1k.q data_set_parameters_file
执行后:
从上面的执行过程和执行结果来看,有如下结论:
bin/lsh_computeParamsR data_set_file query_set_file > data_set_parameters_file
bin/lsh_fromParams data_set_file query_set_filedata_set_params_file
以上两句等价与:
bin/lsh Rdata_set_file query_set_file
事实上,在bin/lsh脚本文件中调用了bin/lsh_computeParams 的命令,并且输出到定向的参数文件。
所以要手工设置参数的话,那么我们应该在参数文件data_set_params_file中更改好相应的参数,然后使用命令bin/lsh_fromParams data_set_file query_set_filedata_set_params_file
就可以实现手工设置参数了。
校对:
脚本文件bin/exact用来计算准确的R-NN,用法如下:
bin/exact radiusdata_set_file query_set_file
bin/exact0.6 mnist1k.dts mnist1k.q >o.e
执行后:
输出到o.e文件中:
脚本文件bin/compareOutputs用来检查bin/lsh或者bin/lsh_fromParams计算的结果参数的正确性,其用法如下:
bin/compareOutputscorrect_output LSH_output
其中correct_output是bin/exact产生的文件,LSH_output是bin/lsh产生的文件,在该实验中,分别是o.e和o;命令如下:
bin/compareOutputso.e o
执行结果OK=1,说明E2LSH的输出的查询结果是正确的,如果OK=0,说明E2LSH的输出的查询结果至少有一个点不是R-NN点。