megvii-research / revcol Goto Github PK
View Code? Open in Web Editor NEWOfficial Code of Paper "Reversible Column Networks" "RevColv2"
License: Apache License 2.0
Official Code of Paper "Reversible Column Networks" "RevColv2"
License: Apache License 2.0
Thank you so much great work.
I would like to use the RevCol segmentation model with Huggingface.
However, I could not figure out how to use it.
I tried to load the pretraiend model based on the following URL, following the general Huggingface usage, but it did not work.
https://huggingface.co/LarryTsai/RevCol
I would appreciate any help you could give me.
Thank you in advance.
When will RevColv2 be released ?
作者你好,我拜读了您的论文,在语义分割部分是有multi scale的实验的,但是问题在于如果图片尺寸输入是某些奇数,比如说229或者223,那么上采样和下采样的部分就会不一致x = self.up(c_up) + self.down(c_down),我反复翻看了数据处理部分(mmsegmentaion中ade的config文件),并没有找到对这一错误的处理,于是想请教一下作者是如何处理这一部分的。
Hi! Why not train on Cityscapes? And will you train RevCol on Cityscapes dataset?
We are trying to convert Revcol to TensorRT
format, but when converting to ONNX
, we found that when using save_memory=True
, the conversion does not work properly.
Here is our conversion test code:
import torch
from models.revcol import *
model = revcol_tiny(save_memory=True, inter_supv=False, drop_path = 0.1, num_classes=10, kernel_size = 3)
for i in range(model.num_subnet):
getattr(model, f'subnet{str(i)}').save_memory = False
x = torch.zeros(1, 3, 224, 224)
torch.onnx.export(model, x, './weights/revcol_tiny.onnx', verbose=False, opset_version=17,
training=torch.onnx.TrainingMode.EVAL,
do_constant_folding=True,
input_names=['images'],
output_names=['output'],
dynamic_axes=None)
When save_memory=True, the following error occurs:
File [d:\SoftWare\anaconda3\envs\torch\lib\site-packages\torch\onnx\utils.py:506](file:///D:/SoftWare/anaconda3/envs/torch/lib/site-packages/torch/onnx/utils.py:506), in export(model, args, f, export_params, verbose, training, input_names, output_names, operator_export_type, opset_version, do_constant_folding, dynamic_axes, keep_initializers_as_inputs, custom_opsets, export_modules_as_functions)
188 @_beartype.beartype
189 def export(
190 model: Union[torch.nn.Module, torch.jit.ScriptModule, torch.jit.ScriptFunction],
(...)
206 export_modules_as_functions: Union[bool, Collection[Type[torch.nn.Module]]] = False,
207 ) -> None:
208 r"""Exports a model into ONNX format.
209
210 If ``model`` is not a :class:`torch.jit.ScriptModule` nor a
(...)
503 All errors are subclasses of :class:`errors.OnnxExporterError`.
...
511 '(vmap, grad, jvp, jacrev, ...), it must override the setup_context '
512 'staticmethod. For more details, please see '
513 'https://pytorch.org/docs/master/notes/extending.func.html')
RuntimeError: invalid unordered_map<K, T> key
If you add the following code, the export will work, but you should not be able to take advantage of the low memory footprint of Reversible Net.
for i in range(model.num_subnet):
getattr(model, f'subnet{str(i)}').save_memory = False
Is there any relevant solution?
Hi, I saw the result from your original paper, announcing the mAP of 63.8% on COCO minival set. Could you please release that model in this codebase? Thanks a lot!
x = x = x.permute(0, 3, 1, 2)
I do not know why ?
Hi, congrats on the paper!
I tried testing the code but I get the following error running the below test code:
RuntimeError: The size of tensor a (4) must match the size of tensor b (5) at non-singleton dimension 3
from models.revcol import revcol_tiny
import torch
nt = revcol_tiny(True, num_classes=10)
a = torch.ones([1,3,40,40])
out = nt.forward(a)
print(out.shape)
Thank you for your impressive work Tsai! I am wondering whether there are any latency comparisons against other convnet/transformer models? Since the network is built by efficient 3x3 convolution and linear operators, it is expected to have better throughputs.
The source code reads:
self.down = nn.Sequential(
nn.Conv2d(channels[level-1], channels[level], kernel_size=2, stride=2),
LayerNorm(channels[level], eps=1e-6, data_format="channels_first"),
) if level in [1, 2, 3] else nn.Identity()
So when level=0 and first_col=True, how do we implement downsampling?
Thanks for all your great work.
We've some error-message during Installation like below , and please give us more advice if any , thanks,
'''
ERROR: Could not find a version that satisfies the requirement teREVCOLolor==1.1.0 (from versions: none)
ERROR: No matching distribution found for teREVCOLolor==1.1.0
'''
At L204 in main.py , only when the training hit the SAVE_FREQ will it save the checkpoint and check for whether to save the best checkpoint. The problem is, however, if the model happen to obtain the best accuracy outside the SAVE_FREQ epoch then the best weight will not be saved.
Since most of our team members run the code on a relatively small datasets, we tent to set a large value on SAVE_FREQ to save some hard drive space. This lead to the situation that the training always miss the chance to save the best.pth.
Is this a intended behavior ? Can you please add a arg to control whether it will save the best.pth every time the model obtain the highest accuracy even if it's not on the SAVE_FREQ epoch ?
Hi! Thanks for the great codebase!
Do you have any timeframe for the release of the COCO object detection model?
When I run the following command :
python main.py --cfg configs/revcol_base_1k_384_finetune.yaml --batch-size 4 \
--data-path ../data/classification --finetune revcol_base_22k.pth
It outputs this:
=> merge config from configs/revcol_base_1k_384_finetune.yaml
Traceback (most recent call last):
File "main.py", line 422, in <module>
main(None, config, ngpus_per_node)
TypeError: main() takes 1 positional argument but 3 were given
First of all, I would say I think this is great work and I am very very interested. Then, I want to debug the segmentation task in the repository. But I didn't find the 'tools/dist_train.sh' when I followed the README.md. Any help will be appreciated.
你好,请问模型架构中的STEM的全称是什么,是什么意思?谢谢
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.