tutorial redes paper neuronales neuronal libro learning filtro explicacion español convolucionales convolucional arquitecturas machine-learning neural-network deep-learning caffe backpropagation

machine learning - redes - ¿Cuándo usar capas in situ en Caffe?



redes neuronales convolucionales paper (1)

Al configurar el blob inferior y superior para que sea el mismo, podemos decirle a Caffe que realice un cómputo "in situ" para preservar el consumo de memoria.

Actualmente sé que puedo usar de forma segura las capas in situ "BatchNorm" , "Scale" y "ReLU" (avíseme si me equivoco). Si bien parece tener algunos problemas para otras capas ( este problema parece ser un ejemplo).

¿Cuándo usar capas in situ en Caffe?
¿Cómo funciona con back-propagation?


Como bien notó, las capas in situ normalmente no funcionan "de fábrica".
Para algunas capas, es bastante trivial ( "ReLU" y otras capas de activación neuronal).
Sin embargo, para otros requiere un manejo especial en el código. Por ejemplo, la implementación de la capa "PReLU" tiene una caché específica bottom_memory_ member variable que almacena la información necesaria para backprop.
Puede ver un código similar para otras capas que prueban específicamente if (top[0] == bottom[0]) para ver si la capa se usa en un caso "in situ".

Además, tiene poco sentido tener una capa in situ para la que la entrada y la salida sean de formas diferentes, por lo que capas como "Convolution" , "InnerProduct" , "Pool" no se consideran candidatas para "en el lugar". capas.