Я обучил модель, которая использует tf.contrib.layers.recompute_grad
.Сейчас я пытаюсь построить карты значимости из модели, но функция keras-vis
visualize_saliency
просто останавливается.
Я пробовал жестко программировать значимость (вдохновленный Блогом Юми ) следующим образом:
inp = mdl.input
outp = mdl.layers[lyr_idx].output
print('Input Layer: {}'.format(inp))
print('Output Layer: {}'.format(outp))
grad = K.gradients( outp, inp )[0]
print('Gradient Tensor: {}'.format(grad))
deriv_fn = K.function( [inp], [grad] )
print('Derivative Function: {}'.format(deriv_fn))
grad_eval = deriv_fn( [img_f[None,:,:,:]] )[0]
grad_eval = np.abs( grad_eval ).max( axis = (0,3) )
arr_min, arr_max = np.min( grad_eval ), np.max( grad_eval )
grad_eval = ( grad_eval - arr_min ) / ( arr_max - arr_min + K.epsilon )
print('Evaluated Gradient: {}'.format(grad_eval))
Я получаю вывод:
Input Layer: Tensor("input:0", shape=(?, 3, 65, 320), dtype=float32)
Output Layer: Tensor("output/BiasAdd:0", shape=(?, 1), dtype=float32)
и программа просто останавливается.Память GPU используется, но использование GPU 0% (без копий / чтения / записи).
Как при Ctrl+C
при использовании функции keras-vis
visualize_saliency
, так и с моим собственным кодом, я замечаюследующая распечатка:
ValueError: Operation 'fc04/fc04/IdentityN' has no attr named '_XlaCompile'
В моей модели fc04
- это 4-й полностью связанный слой (просто слой keras.layers.Dense
).Последний слой - это просто Dense
слой с одним выходом, который появляется сразу после fc04
.
Кто-нибудь может мне помочь?