carpedm20 / ENAS-pytorch

PyTorch implementation of "Efficient Neural Architecture Search via Parameters Sharing"
Apache License 2.0
2.69k stars 492 forks source link

In the CNN, how do you concatenate intermediate outputs coming from different amounts of pooling? #46

Open stefanoalletto opened 5 years ago

stefanoalletto commented 5 years ago

I'm trying to reimplement the CNN part but I'm wondering: how do you concatenate the intermediate results coming from different layers, some with and some without pooling? For example, Fig. 7 in the paper or the image in the readme both show that some layers take as input the concat of the intermediate output of a max pooling layer and some other conv layer before it. But if you assume that you have inputs of 224x224, strides=1 in the convs and the right amount of padding, the output of a conv layer will be n_filtersx224x224, while the pooling output (assuming stride 2) will be n_filtersx112x112. How do you concatenate the two intermediate outputs?

ShangyinGao commented 5 years ago

you should check the origin implementation of enas at https://github.com/melodyguan/enas/blob/master/src/cifar10/general_child.py#L221

all layers' height and width will be half as before after each pool_layer

Did you finished the CNN implementation?