iboing / cliquenet Goto Github PK
View Code? Open in Web Editor NEWConvolutional Neural Networks with Alternately Updated Clique (to appear in CVPR 2018)
License: MIT License
Convolutional Neural Networks with Alternately Updated Clique (to appear in CVPR 2018)
License: MIT License
Hi there! I can't find any bias used in your code, but bias=False. Could you please tell me why? Thanks
In line 74~76 in dataloader/data_generator.py, mean and standard deviation are computed from both training set and validation set for CIFAR and SVHN. Should they be computed only over the training set to normalize both training data and validation data in data preprocessing?
The parameters are initialized according to [12] and the weights of fully connected layer are using Xavier initialization [10].
is written in your paper. However, Pytorch code for ImageNet only uses the default initialization of full connection but not Xavier initialization.
Thus, is Xavier initialization used for fc on ImageNet on earth?
There is a sentence in your paper:
We train our models using stochastic gradient descent (SGD) with 0.9 Nesterov momentum and 10-4 weight decay.
But in line 77 in train_imagenet.py, nesterov=True is not set in torch.optim.SGD(). Hence, is Nesterov momentum used in models for ImageNet on earth?
There is a model, CliqueNet (k = 150; T = 30), in Table 4 in your paper. I have trained it using the command:
python train.py --gpu 0 --dataset cifar-10 --k 150 --T 30 --dir ./checkpoints --if_a True --if_b True --if_c True
. However, the total number of parameters is shown as 10.48M but not 10.02M which is written in your paper. It is the only model with the inconsistent number of parameters while your codes show that all the other models have the same number of parameters as what are written in paper.
Would you please check this conflict?
1, 3, 128,128
after output = self.pool(output)
, I got an error:
Traceback (most recent call last):
File "D:/projects/machine_learning/gta5/train/clique_train.py", line 176, in <module>
Net()
File "D:/projects/machine_learning/gta5/train/clique_train.py", line 38, in Net
out = model.forward(x)
File "D:\projects\machine_learning\gta5\model\pytorch\cliquenet.py", line 70, in forward
feature_I_list.append(self.list_gb[i](block_feature_I))
File "D:\Anaconda3\lib\site-packages\torch\nn\modules\module.py", line 491, in __call__
result = self.forward(*input, **kwargs)
File "D:\projects\machine_learning\gta5\model\pytorch\utils.py", line 65, in forward
output = self.pool(output)
File "D:\Anaconda3\lib\site-packages\torch\nn\modules\module.py", line 491, in __call__
result = self.forward(*input, **kwargs)
File "D:\Anaconda3\lib\site-packages\torch\nn\modules\pooling.py", line 547, in forward
self.padding, self.ceil_mode, self.count_include_pad)
RuntimeError: Given input size: (152x32x32). Calculated output size: (152x0x0). Output size is too small at c:\programdata\miniconda3\conda-bld\pytorch_1524549877902\work\aten\src\thcunn\generic/SpatialAveragePooling.cu:63
I have downloaded the code and data set, how to run the program?
my version is python3 with tensorflow1.5,I have hanged the code to python3,but cannot run it.
The code in Line 350 in “./models/utils.py” maybe wrong,
stage_II=tf.concat((stage_II, blob_dict[str(layer_id)]), axis=3) .
The "blob_dict" may be "blob_dict_new" , since here is the Stage-II feature which is inputted to the next
block.
Hello,I use python3.6 to run the program.
But I had a problem like this,
if os.path.exists(result_dir) == False:
File "D:\Downloads\Software\python37\lib\genericpath.py", line 19, in exists
os.stat(path)
TypeError: stat: path should be string, bytes, os.PathLike or integer, not NoneType
If you have encountered this problem and it has been solved, please let me know, I would appreciate it.Thank you.
Cliquenet structure is different from the most cnn,such as densenet.
I can use grad_CAM on Densenet, but don't know how to apply Grad_Cam on Cliquenet?
Please give some suggestions, thx.
I noticed that:
in file ‘/imagenet_pytorch/utils.py’
line 152
block_feature_II = torch.cat((block_feature_II, self.blob_dict_list[1][str(layer_id)]), 1)
maybe the self.blob_dict_list[1]
should be replaced with self.blob_dict_list[self.loop_num]
to get the final loop result instead of the first loop result?
hi, i have a problem :Traceback (most recent call last):
if not exists(result_dir):
os.mkdir(result_dir)
TypeError: mkdir: can't specify None for path argument
can you tell me how to fix it ,ths
Hi! Thanks for a nice network.
I have a problem. When I try to continue training with pretrained model that you shared I get
KeyError: 'unexpected key "module.block1.conv_param.1.weight" in state_dict'
Hi ! how do you calculate number of parameters and Gflops? Do you have code ? Thanks!
The description of the number of layers in blocks seems mix the cases having bottleneck layers with the cases without bottleneck layers in your paper according to your code.
All the models for ImageNet have bottleneck layers. The title of Table 3 and the code indicate that the number of layers refers to the times of growth. One model for CIFAR, CliqueNet (k = 150; T = 30), has bottleneck layers too. The title of Table 4 shown that T is the total number of layers in three blocks. On the contrary, your code indicate that the number is 15 actually with the same meaning as the models for ImageNet.
If my understanding is correct, the description in your paper really mislead readers. It is better to comment on it.
In the paper the Table 1 Bottom layers should be addressed as Top Layers and vice versa. Because, the all layers except input layers are being updated and X0 is the input layer and is written under the column of bottom layers so maybe I think either the column names should be switched.
I make above understanding based on the assumption that the top layers update the bottom layers.
If I misunderstood please someone explain this and rectify me.
Thanks
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.