Создание тепловой карты на керасе - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь сделать сценарий, который распознает рак молочной железы в маммографии. Я создал небольшую базу данных из 12 изображений (6 с раком молочной железы и 6 6 без), чтобы проверить, работает ли он, прежде чем загружать (намного) большую базу данных. Код, который я написал (см. Ниже), успешно делает это, но теперь я хочу сделать тепловую карту каждой фотографии, чтобы увидеть, где скрипт распознает рак молочной железы.

library(EBImage)
library(keras)

mypic<-list()
for(i in 1:12){mypic[[i]]<-readImage(paste('test',i,'.jpg',sep=''))}


#resize
for(i in 1:12){
  mypic[[i]]<-resize(mypic[[i]], 100,100)
  if (i%%10==0){print(i)}
}

#reshape
for(i in 1:12){
  mypic[[i]]<-array_reshape(mypic[[i]], c(100,100,3))
  if (i%%10==0){print(i)}
}

#rowbind
trainx<- NULL
for(i in 1:5){
  trainx<-rbind(trainx, mypic[[i]])
}
for(i in 7:11){
  trainx<-rbind(trainx, mypic[[i]])
}
str(trainx)

testx<-rbind(mypic[[6]], mypic[[12]])
str(testx)

trainy<- c(1, 
           1, 
           1, 
           1, 
           1, 
           0, 
           0, 
           0, 
           0, 
           0)
testy<-c(1,0)


#train

trainLabels<-to_categorical(trainy)
testLabels<-to_categorical(testy)


#one hot
model<-keras_model_sequential()

model %>%
  layer_dense(units = 256, activation = 'relu', input_shape = c(30000))%>%
  layer_dense(units = 128, activation = 'relu') %>%
  layer_dense(units = 2, activation = 'sigmoid')


#compile
model %>%
  compile(loss = 'binary_crossentropy',
          optimizer_rmsprop(),
          metrics = c('accuracy'))

#fitmodel

history<- model %>%
  fit(trainx,
      trainLabels,
      epochs = 15,
      batch = 32,
      validation_split = 0.2)

summary(history)
# Evaluation & Prediction - train data
model %>% evaluate(trainx, trainLabels)
pred <- model %>% predict_classes(trainx)
table(Predicted = pred, Actual = trainy)
prob <- model %>% predict_proba(trainx)
cbind(prob, Prected = pred, Actual= trainy)

Я хотел бы сделать изображения похожими на картинке ниже:

text Не уверен, стоит ли упоминать, но я использую Rstudio в среде anaconda и установил tenowflow-gpu от Keras. Я пытался установить пакет Keras-vis по ссылке . Однако я получаю сообщение об ошибке

Error: (converted from warning) package 'reticulate' was built under R version 3.6.2
Execution halted
ERROR: lazy loading failed for package 'KerasVis'
* removing 'D:/ProgramData/Anaconda3/envs/gputest/Lib/R/library/KerasVis'

Я пробовал разные варианты установки обновлений (ВСЕ, только CRAN, нет, дайджест и PS) в сочетании с установкой предыдущих версий. Все советы приветствуются. Заранее спасибо

...