Closed lzlzlizi closed 3 years ago
I can clean the codes myself, if you are willing to share the old codes(through github or email).
Hi, consider using the original MART code https://github.com/jayleicn/recurrent-transformer as it's written in Python 2. Even the captioning 0.1 needs Python 3.7+ so I'm not sure it would be helpful for you.
To reproduce our results with that, change the dataloader from video features to COOT representations (you can directly compare the changes in the dataset between recurrent-transformer and this version).
What are the limitations of your system? For the newest python you can use miniconda so I guess the GPU is old and our code breaks with some old PyTorch / CUDA version.
Thanks for the quick reply!
Our system can run with python3.6 and the problem is that the COOT's new code needs python3.8. I am not sure why 0.1 needs python3.7, but maybe we can try with it since we have many dockers using python3.7 while python3.8 is few. (The biggest problem is our dockers' GCC version is very low, thus some fancy packages have wrong dependencies.)
So, can you upload a version of 0.1 captioning, that will be great.
Thanks!
Requirements for 0.1 and this version should be the same. So if this doesn't work for you the 0.1 probably will not work either.
You could try running this repo on 3.6 but you would have to replace ALL dictionaries with OrderedDict as the regular dict is not ordered in python < 3.7 and you will get weird results with randomly-sorted dicts everywhere.
If you run this repo with python 3.7 it should work out of the box. I have not tested PyTorch below 1.7 / cuda 10.2 so if you have old versions there it may not work (again, you will have the same problems for 0.1 and this.)
Let me know how it goes.
It seems codes like return self.layer_normalization(x), *sublayer_return[1:]
can not run on python3.7 and under.
I think I can remove some components and modify something to debug with python3.6.
So, I would be very thankful if you can provide the version 0.1 codes, since I will be more familiar with the original torch functions.
Anyway, thanks for the help and releasing the codes!
sublayer_return is from Video Retrieval, you don't need that file (transformer_legacy) for captioning only. You could try deleting everything and slowly adding things back that are required for captioning.
Sorry, I still don't get why you would need the old 0.1 code. It uses exactly the same model and dataloader as this version so if this doesn't work the 0.1 will not work either!
So please try to make this one work first. Before sending any code I would have to check it first and would want to avoid that effort.
If you make a python 3.6 version of this captioning you could consider making a public fork for others.
Best
I moved to python3.8 + torch 1.4 + cuda 10.1, it can work after removing the fp16 amp
and the load function
of embeddings of glove model.
Any chance you release the captioning codes of version 0.1 style. The Machine Learning tool-kit you released is awesome, but it's hard to test on old systems.
It will be very helpful!!!