-
Notifications
You must be signed in to change notification settings - Fork 18.5k
Modular model definitions: network layer, layer modules, and protobuf generation #1169
Description
Does anyone see any value in a new layer type that is itself a network? This would allow a recursive inclusion of networks within networks.
The inception module used in GoogLeNet is an example of a network-in-network. I provided an implementation of GoogLeNet's Inception "module" in this. With Caffe as it is, if you want to build GoogLeNet, you would have to copy all those Inception module layers 9 times thereby duplicating the same thing many times, changing the names of layers and top and bottom blobs to be unique within the net. By contrast, if we have a Network layer type, then each Inception module would appear as a single layer instance of type NETWORK (perhaps). It would refer to the network's prototxt somehow, and specify values for the the things that are distinctive about each instance of the Inception module (such as the number of output channels of each of the convolutions and the pool). And also the bottom and top blob names.
Am I on my own if I want this implemented? Anyone already working something like this? I wouldn't want to duplicate effort.