写在前面
花了很长时间,总算把https://github.com/pnnl/safekit中的源码部分跑完了,踩了一些坑,这里记录一下我的解决过程。
环境
我的电脑是win10系统,python是3.6.5版本,Tensorflow是1.14.0版本。
源码
源码是一个基于常用数据集LANL和CERT的异常检测代码https://github.com/pnnl/safekit。前面的博客已经介绍了这个源码的结构和每个文件的作用。要注意的是该源码是基于Linux的,所以里面的命令啥的都是基于Linux的,还有就是论文作者用的是python2.注意一下这两点。下面是我对源码的几个地方的修改:
修改一:
safekit/model/simple_lm.py文件的line 167,添加了一行代码,如下:
我添加了 outfile_name=outfile_name.replace(’:’,’-’)。先说一下line 167这里的意思,这里的outfile_name其实就是后面要写入训练结果的文件名字。因为在运行test/lanl_lm_tests.py的时候,会实践好几个输入,对应会生成好几个文件,所以这里通过文件命名来区分生成的文件。outfile_name其实就是一次训练的时间,学习率等这些参数通过下划线连接在一起。但是这里的time.ctime(time.time()).replace(’ ', ‘-’)对应的时间是诸如这种格式12:25,也就是通过冒号进行连接,