8
W moim previous question użyłem Keras 'Layer.set_input()
do podłączenia mojego tensora wyjściowego przetwarzania Tensorflow do wejścia mojego modelu Keras. Jednakże, this method has been removed po Keras w wersji 1.1.1
.Jak ustawić wejście warstwy Keras za pomocą tensora Tensorflow?
Jak mogę to osiągnąć w nowszych wersjach Keras?
Przykład:
# Tensorflow pre-processing
raw_input = tf.placeholder(tf.string)
### some TF operations on raw_input ###
tf_embedding_input = ... # pre-processing output tensor
# Keras model
model = Sequential()
e = Embedding(max_features, 128, input_length=maxlen)
### THIS DOESN'T WORK ANYMORE ###
e.set_input(tf_embedding_input)
################################
model.add(e)
model.add(LSTM(128, activation='sigmoid'))
model.add(Dense(num_classes, activation='softmax'))
W tym wierszu 'model.add (Input (tensor = tf_embedding_input))', następuje następujący ** błąd **: 'TypeError: The a warstwa dded musi być instancją klasy Layer. Znaleziono: Tensor ("tf_embedding_input: 0", shape = (?, 23), dtype = int64) '. Ja ** rozwiązałem to **, zmieniając linię na 'model.add (InputLayer (input_tensor = embedding_input))'. Dzięki za wskazanie mnie we właściwym kierunku! – Qululu
Nie ma problemu, zwykle używam funkcjonalnego 'Modelu', a nie' Sekwencyjnego', gdzie 'Input' działa, ale cieszę się, że naprawiłeś go na końcu. – indraforyou
Tak, wcześniej użyłem funkcjonalnego" Modelu "i zawinąłem wstępne przetwarzanie w warstwie 'Lambda' po warstwie' Input': 'Lambda (preprocess_func, ...)'. Czy mogę założyć, że w praktyce osiąga to samo? – Qululu