Je veux transformer mon modèle keras en une fonction theano afin que je puisse calculer les gradients sur les entrées. Je pensais que cela pourrait être cool pour visualiser le réseau. Je veux utiliser ces dégradés pour améliorer les caractéristiques de l'image originale en fonction de ce que le réseau de neurones pense être. Je ne comprends pas ce que je fais mal avec le code suivant.Comment transformer le modèle keras entier en fonction theano
model = Sequential()
model.add(InputLayer((3, H, W)))
model.add(GaussianNoise(0.03))
model.add(Flatten())
model.add(Dense(512, activation = 'relu', name = 'dense'))
model.add(Dropout(0.2))
model.add(Dense(20, activation = 'relu'))
model.add(Dense(C, activation = 'softmax', W_regularizer = l2()))
...
f = theano.function([model.input], model.output)
Je reçois l'exception suivante.
theano.gof.fg.MissingInputError: A variable that is an input to the graph was neither provided as an input to the function nor given a value. A chain of variables leading from this input to an output is [keras_learning_phase, DimShuffle{x,x}.0, Elemwise{switch,no_inplace}.0, dot.0, Elemwise{add,no_inplace}.0, Elemwise{add,no_inplace}.0, Elemwise{mul,no_inplace}.0, dot.0, Elemwise{add,no_inplace}.0, Softmax.0]. This chain may not be unique
Backtrace when the variable is created:
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
File "/usr/local/lib/python3.5/dist-packages/keras/backend/__init__.py", line 51, in <module>
from .theano_backend import *
File "<frozen importlib._bootstrap>", line 969, in _find_and_load
File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 662, in exec_module
File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
File "/usr/local/lib/python3.5/dist-packages/keras/backend/theano_backend.py", line 13, in <module>
_LEARNING_PHASE = T.scalar(dtype='uint8', name='keras_learning_phase') # 0 = test, 1 = train