Использование функции прогнозирования для извлечения входных весов на разных слоях - PullRequest
0 голосов
/ 30 апреля 2019

Я построил нейронную сеть с кератами для классификации данных, которые содержат несколько меток. Сеть работает хорошо, и я могу видеть матрицы путаницы и то, насколько хорошо сеть работает.

Однако я хотел бы видеть сейчас входные функции, которые наиболее взвешены в разных узлах.

После построения модели я выделил различные слои следующим образом:


layer_name1<-"dense_7"
intermediate_layer_model <- keras_model(inputs = model2$input, outputs = get_layer(model2, layer_name1)$output)

Затем я использовал найденную мной функцию:

https://bgreenwell.github.io/pdp/articles/pdp-example-tensorflow.html

для извлечения объектов из входных данных (предположительно) и их оценки в слоях. Код выглядит следующим образом:

pred_wrapper <- function(object, newdata ) {
  features<-predict(object, x = as.matrix(newdata)) %>%
    as.vector()
  }


View(pred_wrapper(intermediate_layer_model, training1))

Это создает список функций в один столбец с их оценками активации. Вопросы заключаются в следующем:

Я не могу сопоставить эти функции с их исходными метками: это просто список с именами строк с номером 1: n ... Я должен исправить это следующим образом (что работает, но не работает, когда я запускаю функцию выше):

colnames(training1)<-colnames(training)

Вторая проблема заключается в том, что список не создает «блоки» активаций, поскольку он находится просто в одном столбце. Так, например, если я создаю тепловую карту узла активаций для данного слоя, я получаю числовые выборки в виде строк, а узлы в виде столбцов, причем то, как «запускается» узел, основывается на значении веса. Следующий код производит это:

layer_name<-"dense_7"
intermediate_layer_model <- keras_model(inputs = model2$input, outputs = get_layer(model2, layer_name)$output)

intermediate_output <- predict(intermediate_layer_model, training1)

Список, созданный из функции выше, не позволяет мне видеть, где объекты находятся в узлах и каковы их значения активации.

Конечная цель состоит в том, чтобы иметь список оценок веса элементов для каждого узла в образце, чтобы я мог видеть, как узлы кластеризуются в соответствии с кластеризацией на тепловой карте.

Это, кажется, действительно сложная задача, и, похоже, что-то там, что я видел, не могло бы достичь этого. Любая помощь будет высоко ценится.

Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...