0
点赞
收藏
分享

微信扫一扫

论文Uninformed Students: Student-Teacher Anomaly Detection with Discriminative Latent Embeddings实验复现日志

就是耍帅 2022-03-24 阅读 55

paper地址Uninformed Students: Student-Teacher Anomaly Detection with Discriminative Latent Embeddings

代码地址

GitHub - denguir/student-teacher-anomaly-detection: Student–Teacher Anomaly Detection with Discriminative Latent Embeddings​​​​​​g

想复现一下这个论文中的实验,然后看到了现成的代码,但是在运行代码的过程中还是出现了一些问题,写个简单的日志记录一下,也能帮助像我一样的小白避坑。

0.阅读readme文件,按照文件指引运行项目。在pycharm中的terminal中运行命令。

  1. 执行./mvtec_dataset.sh文件

刚开始运行不了sh文件,后来改了一下设置,(这个git是之前下的,没下过的可以先下好这个)就可以运行了.

在执行 mvtec_dataset.sh文件的时候

在Downloading MVTec dataset...时

遇到./mvtec_dataset.sh: line 40: wget: command not found的问题

原因没有安装wget命令

解决方式;手动下载MVTec dataset放到data文件下面(后来又自己安装上wget命令)

2.执行teacher_training.py时报错

raise RuntimeError('Attempting to deserialize object on a CUDA '

RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_location=torch.device('cpu') to map your storages to the CPU.

尝试在 CUDA设备上反序列化对象时,但是torch.cuda.is_available() is False, 如果您在仅 CPU 的机器上运行,请使用带有 map_location=torch.device('cpu') 的 torch.load 将您的存储映射到 CPU。

解决方式,找到运行中使用到的utils.py文件的torch.load函数加入map_location=torch.device('cpu')参数。

原因应该是我的电脑上没有独显。(说起来这台电脑也够老的,早晚给他换咯)

3.开始训练teacher时发现没有csv文件,之后发现在第一步执行./mvtec_dataset.sh文件时

python3 mvtec_dataset.py $DATASET这句命令没有执行。

解决方法 改为python mvtec_dataset.py $DATASET

Data子目录中每个文件下都有了csv文件但是继续运行提示img下没有img.csv

猜想程序将csv放错了位置

将carpet.csv文件复制一份命名为img.csv放入carpet/img/中

显示 No such file or directory: '../data/carpet/img\\img\\train_good_080.png'

有两层img路径,猜测是程序逻辑出了问题:

 File "G:\1python\myproject\download\student-teacher-anomaly-detection-master\src\AnomalyDataset.py", line 31, in __init__

    self.frame_list = self._get_dataset(self.csv_file, constraint)

 File "G:\1python\myproject\download\student-teacher-anomaly-detection-master\src\resnet18_training.py", line 55, in train

dataset = AnomalyDataset(root_dir=f'../data/{args.dataset}/img',

这两个地方加了两层img,去掉下面一层进行尝试

尝试运行resnet18_training.py成功

打开teacher_training.py找到和resnet18_training.py类似的Load training data的地方

发现dataset = AnomalyDataset(root_dir=f'../data/{args.dataset}',这里并没有带/img,判断应该是resnet18_training.py中多加的/img,去掉就可以正常运行了。

举报

相关推荐

0 条评论