Compact-Transformers
routing-transformer
Compact-Transformers | routing-transformer | |
---|---|---|
4 | 1 | |
508 | 284 | |
1.2% | - | |
3.4 | 0.0 | |
2 months ago | about 3 years ago | |
Python | Python | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Compact-Transformers
-
Deep Dive into the Vision Transformers Paper (ViT)
Yeah so I can get how that might be confusing. Sometimes code is clearer. So in the vanilla transformer you do a patch and then embed operation, right? A quick way to do that is actually with non-overlapping convolutions. Your strides are the same size as your kernel sizes. Look closely at Figure 2 (you can also see a visual representation in Figure 1 but I'll admit there is some artistic liberty there because we wanted to stress the combined patch and embed operation. Those are real outputs though. But basically yeah, change the stride so you overlap. Those create patches, then you embed. So we don't really call it a hybrid the same way you may call a 1x1 cov a channel wise linear.
ViT https://github.com/SHI-Labs/Compact-Transformers/blob/main/s...
CCT: https://github.com/SHI-Labs/Compact-Transformers/blob/main/s...
-
[D] Different input image size when using Visual Transformers
After looking around for this type of architecture, it looks someone had this idea before me: https://github.com/SHI-Labs/Compact-Transformers
-
Will Transformers Take over Artificial Intelligence?
> Are transformers competitive with (for example) CNNs on vision-related tasks when there's less data available?
Typically no, but in some cases yes. Pure vision transformers suffer from too much global inductive bias and not enough local inductive bias. For vision problems LIB tends to be a pretty important part to learning vision problems. That's what made convolutions helpful in the first place. But the good news is that you don't need much. CCT[0] showed that early convs (1 or 2) was enough to get good performance. In fact, CCT gets ResNet50 level performance on CIFAR-10 with 15% the number of parameters[1]. This was done _without_ pre-training, which is what most papers with transformers do when reporting CIFAR numbers. We also have SOTA on Flowers102 which is a small dataset (~6.5k) but larger images (99.76% with pre-training, 97.19% without). So we can definitely have transformers work with datasets on the order of magnitude you're talking about. But keep in mind that transformers still like a lot of data augmentation.
> I'm in an industry (building energy consumption prediction) where we can only generate around 10,000 to 100,000 datapoints (from simulation engines) for DL. Are transformers ever used with that scale of data?
In short, yes. Feel free to open issues on our GH if you experience problems[2]. We've been trying to help people use our network for various types of problems.
Disclosure: I'm one of the lead authors on CCT.
[0] https://arxiv.org/abs/2104.05704
[1] https://paperswithcode.com/sota/image-classification-on-cifa...
[2] https://github.com/SHI-Labs/Compact-Transformers
routing-transformer
-
Will Transformers Take over Artificial Intelligence?
I would recommend Routing Transformer https://github.com/lucidrains/routing-transformer but the real truth is nothing beats full attention. Luckily, someone recently figured out how to get past the memory bottleneck. https://github.com/lucidrains/memory-efficient-attention-pyt...
What are some alternatives?
vit-pytorch - Implementation of Vision Transformer, a simple way to achieve SOTA in vision classification with only a single transformer encoder, in Pytorch
tab-transformer-pytorch - Implementation of TabTransformer, attention network for tabular data, in Pytorch
memory-efficient-attention-pytorch - Implementation of a memory efficient multi-head attention as proposed in the paper, "Self-attention Does Not Need O(n²) Memory"
hlb-CIFAR10 - Train CIFAR-10 in <7 seconds on an A100, the current world record.
conformer - Implementation of the convolutional module from the Conformer paper, for use in Transformers
memory-efficient-attention-pyt
enformer-pytorch - Implementation of Enformer, Deepmind's attention network for predicting gene expression, in Pytorch
mae - PyTorch implementation of MAE https//arxiv.org/abs/2111.06377
LOGICGUIDE - Plug in and Play implementation of "Certified Reasoning with Language Models" that elevates model reasoning by 40%