lizhengwei1992 / Semantic_Human_Matting

Semantic Human Matting
527 stars 145 forks source link

'AvgPool2d' object has no attribute 'divisor_override' #24

Closed chdzhen closed 4 years ago

chdzhen commented 4 years ago

hi, thank you for your code. but when I run test_camera.sh this error 'AvgPool2d' object has no attribute 'divisor_override' appear, my env is torch-1.2.0+cpu、torchvision-0.4.0+cpu、python3.6.3. who can help me ? thanks again!

chdzhen commented 4 years ago

in T_Net.py change this: input_cascade1 = nn.AvgPool2d(3, stride=2, padding=1)(input) input_cascade2 = nn.AvgPool2d(3, stride=2, padding=1)(input_cascade1) input_cascade3 = nn.AvgPool2d(3, stride=2, padding=1)(input_cascade2) input_cascade4 = nn.AvgPool2d(3, stride=2, padding=1)(input_cascade3)

    # input_cascade1 = self.cascade(input)
    # input_cascade2 = self.cascade(input_cascade1)
    # input_cascade3 = self.cascade(input_cascade2)
    # input_cascade4 = self.cascade(input_cascade3)
gravitychen commented 4 years ago

I think you can re-define the avgpool2d.

  1. print(your_net) to get the parameter and I got (avgpool): AvgPool2d(kernel_size=7, stride=1, padding=0) (fc): Linear(in_features=512, out_features=512, bias=True)

2.re-define this layer model = torch.load(your_model_path) model.avgpool = nn.AvgPool2d(kernel_size=7, stride=1, padding=0)

goldwater668 commented 1 year ago

input_cascade1 = nn.AvgPool2d(3, stride=2, padding=1)(input) input_cascade2 = nn.AvgPool2d(3, stride=2, padding=1)(input_cascade1) input_cascade3 = nn.AvgPool2d (3, stride=2, padding=1)(input_cascade2) input_cascade4 = nn.AvgPool2d(3, stride=2, padding=1)(input_cascade3)

AttributeError: 'Upsample' object has no attribute 'recompute_scale_factor'

kakumarabhishek commented 11 months ago

I am not using this repository, but this error popped up in a different project, and your solution worked for me @gravitychen. Thank you.