AnoDDPM icon indicating copy to clipboard operation
AnoDDPM copied to clipboard

Please Asking about size mismatch!!

Open abegon-ta opened this issue 1 year ago • 5 comments

Hi I tried to run the introduced model using MVtec dataset according to READ.ME, but I got the following error in detection.py. I don't know how to solve this problem. Please help me to solve this problem.

The test_arg I used is as follows

{ "img_size": [ 256, 256 ], "Batch_Size": 1, "EPOCHS": 3000, "T": 1000, "base_channels": 128, "beta_schedule": "linear", "channel_mults": "", "loss-type": "l2", "loss_weight": "none", "train_start": true, "lr": 1e-4, "random_slice": true, "sample_distance": 600, "weight_decay": 0.0, "save_imgs": false, "save_vids": true, "dropout": 0, "attention_resolutions": "16,8", "num_heads": 2, "num_head_channels": -1, "noise_fn": "gauss", "dataset": "leather", "channels": 3 }

The error statement is as follows. RuntimeError: Error(s) in loading state_dict for UNetModel: size mismatch for down.0.0.weight: copying a param with shape torch.Size([128, 3, 3, 3]) from checkpoint, the shape in current model is torch. size mismatch for out.2.weight: copying a param with shape torch.Size([3, 128, 3, 3, 3]) from checkpoint, the shape in current model is torch.Size([1, 128, 3, 3]). size mismatch for out.2.bias: copying a param with shape torch.Size([3]) from checkpoint, the shape in current model is torch.Size([1]).

Waiting for a solution.

abegon-ta avatar Oct 01 '22 11:10 abegon-ta

Hi - I will have a quick look, but note my paper does not cover anomaly detection across RGB images which can be analysed further in future work.

Julian-Wyatt avatar Oct 08 '22 13:10 Julian-Wyatt

Did the model train ok? How were the output images / videos?

The error you have sent is caused in the model loading process not in the detection process - which I would struggle to test myself as I don't have a dedicated GPU (and I no longer have access to the university server which trained my models)

Julian-Wyatt avatar Oct 08 '22 13:10 Julian-Wyatt

I can't seem to replicate the problem on my end - I've been able to load in a checkpoint with those arguments - it would be great if you could provide more information

Julian-Wyatt avatar Oct 08 '22 14:10 Julian-Wyatt

I am running the run with RGB set to True, do you think that could be affecting it? Thanks for the solution! Perhaps TRAIN is working well. The reason for this is that, as you can see in the image below, a movie is created that generates an image of the original leather dataset from the noise. image

I am running the run with RGB set to True, do you think that could be affecting it?

abegon-ta avatar Oct 10 '22 04:10 abegon-ta

I am running the run with RGB set to True, do you think that could be affecting it? Thanks for the solution! Perhaps TRAIN is working well. The reason for this is that, as you can see in the image below, a movie is created that generates an image of the original leather dataset from the noise. image

I am running the run with RGB set to True, do you think that could be affecting it?

How long to train an Epoch? I'm stuck at the first epoch for many hours And if possible, could you share your python environment?

zideliu avatar Oct 25 '22 09:10 zideliu

Hi I tried to run the introduced model using MVtec dataset according to READ.ME, but I got the following error in detection.py. I don't know how to solve this problem. Please help me to solve this problem.

The test_arg I used is as follows

{ "img_size": [ 256, 256 ], "Batch_Size": 1, "EPOCHS": 3000, "T": 1000, "base_channels": 128, "beta_schedule": "linear", "channel_mults": "", "loss-type": "l2", "loss_weight": "none", "train_start": true, "lr": 1e-4, "random_slice": true, "sample_distance": 600, "weight_decay": 0.0, "save_imgs": false, "save_vids": true, "dropout": 0, "attention_resolutions": "16,8", "num_heads": 2, "num_head_channels": -1, "noise_fn": "gauss", "dataset": "leather", "channels": 3 }

The error statement is as follows. RuntimeError: Error(s) in loading state_dict for UNetModel: size mismatch for down.0.0.weight: copying a param with shape torch.Size([128, 3, 3, 3]) from checkpoint, the shape in current model is torch. size mismatch for out.2.weight: copying a param with shape torch.Size([3, 128, 3, 3, 3]) from checkpoint, the shape in current model is torch.Size([1, 128, 3, 3]). size mismatch for out.2.bias: copying a param with shape torch.Size([3]) from checkpoint, the shape in current model is torch.Size([1]).

Waiting for a solution.

Do you know how to use detection.py? I want to get the result image of detection through this file, but I don't know how to get this image I would really appreciate it if I could get a reply

zideliu avatar Oct 31 '22 08:10 zideliu

Hi,

Apologies for not replying sooner, I've been incredibly busy and I'm the sole contributor to this repo.

I am running the run with RGB set to True, do you think that could be affecting it? Thanks for the solution! Perhaps TRAIN is working well. The reason for this is that, as you can see in the image below, a movie is created that generates an image of the original leather dataset from the noise. image

I am running the run with RGB set to True, do you think that could be affecting it?

It will be affecting it, I wrote bits of code to test this when I was at the late end of writing the paper and likely have not properly reverted it. Running the code with RGB channels will require a bit more work to revert this back to fully working; I don't quite have enough time now to sort this (plus I don't have the same hardware anymore).

How long to train an Epoch? I'm stuck at the first epoch for many hours And if possible, could you share your python environment?

A GPU is basically required for a model of this size, a single iteration (not epoch) on my MacBook Pro (running with cpu) does not even finish in an hour. From memory, the paper was generated on an NVIDIA RTX 2080 series (I believe it's noted in the paper). I believe I provided a requirements.txt to another issue if you wish to view that.

Do you know how to use detection.py? I want to get the result image of detection through this file, but I don't know how to get this image I would really appreciate it if I could get a reply

If all you would like is result images; generate_images.py is far easier to understand and does exactly that. detection.py was primarily used for metric gathering and consequently looping across the whole dataset and concatenating results to form AUC, dice and iou graphs.

Does this help?

Julian-Wyatt avatar Oct 31 '22 09:10 Julian-Wyatt