Giter Site home page Giter Site logo

ucbdrive / dla Goto Github PK

View Code? Open in Web Editor NEW
426.0 426.0 87.0 316 KB

Code for the CVPR 2018 Oral Paper "Deep Layer Aggregation"

Home Page: https://www.vis.xyz/pub/dla/

License: BSD 3-Clause "New" or "Revised" License

Python 61.65% Makefile 0.44% C 12.23% C++ 2.54% Cuda 22.00% Shell 1.13%

dla's People

Contributors

developer0hye avatar fyu avatar xonobo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dla's Issues

Did you use pretrained models for training all fine-grained datasets?

In your paper, figure 6 showed all results for fine-grained datasets. However, when I tried to reproduce the results in bird dataset, I can only get 53% acc. Did you use any pre-trained model for training that? And can you post the code that can be helpful to reproduce your paper's result? Best regards.

Eigenvalue and vector for new dataset

Hi, I'm trying to use dla with my own dataset but I don't really understand the eigenvalues and eigenvectors. How are they calculated/what does "image pixel variations" mean?

Thank you!

The .project weight in '.pth' file seems mismatch with the model?

I've taken a look at the '.pth' file and I found there are two .project.weight when the depth of a tree is 2.
This is for dla34:
image
image
According to the figure in your paper and your code:
image

self.project comes after downsample and appears only once during a single level, but why here are two .project.weight in the pth?
Hope for your reply soon.

About Model Modules

Is the function in the code corresponding to the module in the picture like this? But after I finished writing, I found that the size of my model changed from 70M to about 7M in the original. However, the dLA34 in the paper is only 1.3M. Is there something wrong with my understanding?
QQ20220121-143942@2x

Visualize the model

Here is how to visualize the model

from tensorboardX import SummaryWriter
import torch
from dla import dla34

model = dla34(pretrained=None)
image = torch.rand(2, 3, 224, 224)
x = model(image)
with SummaryWriter(comment='LinearInLinear') as w:
    w.add_graph(model, image, True)
model.eval()

Residual use in Tree

In the forward method of the Tree class in dla.py, the residual argument is always ignored (overriden line 209).
Is it what is wanted ?
If it is, then building project in the constructor and calling its forward method it line 209 is useless when levels > 1. Some computation could be saved.
Also bottom computation is not used if levels > 1 and level_root is false.

initialization

there is a bug in DLA_UP that you forget initial parameters of proj in IDAUP?

License

Could you include a license for this repo? Thank you!

DLA-X46C Backbone

Hello,

Is this repo maintained? I had a few questions regarding the DLA-X46C backbone?

Thanks.

slides

hello, where can I find the slides of this paper?

bilinear initialization of deconv layer

Hi,
I am not quite sure whether the following initialization of deconv layer is a valid implementation of bilinear filter for all input feature channels:

def fill_up_weights(up):
    w = up.weight.data
    f = math.ceil(w.size(2) / 2)
    c = (2 * f - 1 - f % 2) / (2. * f)
    for i in range(w.size(2)):
        for j in range(w.size(3)):
            w[0, 0, i, j] = \
                (1 - math.fabs(i / f - c)) * (1 - math.fabs(j / f - c))
    for c in range(1, w.size(0)):
        w[c, 0, :, :] = w[0, 0, :, :]

It doesn't initialize w in dim 1 except for the first input channel.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.