2

Ich versuche, den Ausgang jeder Schicht des neuronalen Netzes der Faltungen anzuzeigen. Das Backend, das ich verwende, ist TensorFlow. Hier ist der Code:TypeError: 'Tensor' -Objekt ist nicht aufrufbar

import .... 
from keras import backend as K 

model = Sequential() 

model.add(Convolution2D(32, 3, 3, input_shape = (1,28,28))) 
convout1 = Activation('relu') 
model.add(convout1) 

(X_train, y_train), (X_test, y_test) = mnist_dataset = mnist.load_data("mnist.pkl") 
reshaped = X_train.reshape(X_train.shape[0], 1, X_train.shape[1], X_train.shape[2]) 


from random import randint 
img_to_visualize = randint(0, len(X_train) - 1) 


# Generate function to visualize first layer 
# ERROR HERE 
convout1_f = K.function([model.input(train=False)], convout1.get_output(train=False)) #ERROR HERE 
convolutions = convout1_f(reshaped[img_to_visualize: img_to_visualize+1]) 

Der vollständige Fehler ist:

convout1_f = K.function([model.input(train=False)], convout1.get_output(train=False)) TypeError: 'Tensor' object is not callable

Jeder Kommentar oder einen Vorschlag wird sehr geschätzt. Vielen Dank.

+0

Ist meine Antwort richtig? Hast du es versucht? –

Antwort

0

Sowohl get_output als auch Methoden geben entweder Theano oder TensorFlow Tensor zurück. Es ist nicht abrufbar wegen der Natur dieser Objekte.

Um eine Funktion zu kompilieren, sollten Sie nur Schichttensoren und einen speziellen Keras-Tensor namens learning_phase angeben, der angibt, in welcher Option Ihr Modell aufgerufen werden soll.

Danach answer Ihre Funktion sollte wie folgt aussehen:

convout1_f = K.function([model.input, K.learning_phase()], convout1.get_output) 

Denken Sie daran, dass Sie übergeben müssen entweder True oder False wenn Ihre Funktion, um fordern Sie Ihre Modellrechnungen in entweder Lern- oder Trainingsphase Modus zu machen.

Verwandte Themen