Comments (1)
Hi @tracer9, thanks a lot for your interest!
Yes you are correct, and I would say this is more of an empirically (rather than a theoretically) driven decision, as experiments seem to suggest that adding residuals to the graph layers would degrade the performance a little bit.
I don't have a perfect explanation for this, but it could be related to the importance of spatial aggregation over temporal aggregation. In our ablations, we found that 3 blocks of [1 MS-GCN layer + 3 MS-TCN layers] (Table 2, row 3, see supplementary) can outperform the usual set up, say, 10 blocks of [1 GCN + 1 TCN] (e.g. used by 2s-AGCN). To some extent, this suggests that GCN layers need not be deep and that having multi-scale aggregation could be important (also suggested by, e.g., [1][2][3]). Since the final model only has 3 MS-GCN / MS-G3D layers without residuals (in parallel), gradient flows might not be a huge problem. Also, since most of the model weights are in the GCN/G3D layers (>2.5M in the 3.2M model, see [4]), removing identity skips could force the model to learn more useful aggregation layers.
[1] https://arxiv.org/pdf/1902.07153.pdf
[2] https://arxiv.org/pdf/1904.12659.pdf
[3] https://arxiv.org/pdf/1905.00067.pdf
[4] Quick code snippet to check # params for GCN/G3D layers (add at the end of msg3d.py
):
for n, p in model.named_modules():
if ('sgcn' in n or 'gcn3d' in n) and n.count('.') < 1:
print(n, sum(pa.numel() for pa in p.parameters() if pa.requires_grad))
Hope this helps!
from ms-g3d.
Related Issues (20)
- Is the format of data generated with `ntu_gendata.py` same as described in `lshiwjx/2s-AGCN`
- CUDA out of memory while evaluating pretrained HOT 4
- 数据类型为NoneTyoe格式 HOT 2
- Function 'CudnnBatchNormBackward' returned nan values in its 0th output HOT 3
- Recognizing activities using your library HOT 2
- Softmax scores HOT 5
- ST-private HOT 3
- 使用VS code运行直接终止并且没有报错
- Vs code运行代码直接终止,并且没有报错 HOT 7
- Can you provide Flops of this model? HOT 2
- running_mean should contain 54 elements not 108 HOT 2
- kinect 400 dataset HOT 1
- How to use it to predict an RGB video? HOT 1
- Change number of people in model HOT 2
- ValueError: invalid literal for int() with base 10: 'ntu' when run python ntu_gendata.py HOT 2
- About over-smoothing HOT 8
- Half Precision Training may cause discrepancies of test results between training and test time for the same model HOT 2
- How to make the frames not change? HOT 2
- Error in generating data HOT 1
- Shape error while predicting on custom video
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ms-g3d.