Доступ к весам и необработанным активациям всех слоев в deeplearning4j

#java #neural-network #deeplearning4j

#java #нейронная сеть #deeplearning4j

Вопрос:

Моя цель — визуализировать модель, классифицирующую изображение. Для визуализации мне нужны необработанные активации / выходные данные каждого слоя. Есть ли способ получить к ним доступ при прогнозировании? Кроме того, было бы очень полезно, если бы был способ получить доступ к весам. Однако это только необязательно.

Модели для визуализации создаются динамически и будут использоваться для классификации изображений наборов данных MNIST и EMNIST.

model.summary() примерной модели:

 =======================================================================
LayerName (LayerType)   nIn,nOut   TotalParams   ParamsShape           
=======================================================================
layer0 (DenseLayer)     784,200    157.000       W:{784,200}, b:{1,200}
layer1 (DenseLayer)     200,100    20.100        W:{200,100}, b:{1,100}
layer2 (OutputLayer)    100,10     1.010         W:{100,10}, b:{1,10}  
-----------------------------------------------------------------------
            Total Parameters:  178.110
        Trainable Parameters:  178.110
           Frozen Parameters:  0
=======================================================================
 

Код для классификации изображений:

 INDArray reshaped = reshapeImage(image);
int predictedIndex = model.predict(reshaped)[0];
double conf = model.output(reshaped).getDouble(predictedIndex);
 

Если вам нужна дополнительная информация / фрагменты кода, пожалуйста, дайте мне знать.