8
私のprevious questionでは、KerasのLayer.set_input()
を使用して、Tensorflow前処理出力テンソルをKerasモデルの入力に接続しました。しかし、Kerasバージョン1.1.1
の後のthis method has been removed。Tensorflowテンソルでケラス層の入力を設定する方法は?
これを新しいKerasバージョンでどうすれば実現できますか?
例:
# 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'))
この行の 'model.add(Input(tensor = tf_embedding_input))'では、次の**エラーが発生します**: 'TypeError:a ddedレイヤは、クラスLayerのインスタンスでなければなりません。 Found:Tensor( "tf_embedding_input:0"、shape =(?, 23)、dtype = int64) '。私は**これを 'model.add(InputLayer(input_tensor = embedding_input))'に変更することで**を解決しました。私は正しい方向に指してくれてありがとう! – Qululu
問題はありませんが、私は通常、 'Input'が動作する' Sequential'ではなく、 'Model'という機能的な' Model'を使用しますが、最後に固定して嬉しいです。 – indraforyou
はい、以前は 'Model'を使用して、 'Input '層に続く' Lambda'層では 'Lambda(preprocess_func、...)'となります。実際には、これが同じことを達成すると仮定することはできますか? – Qululu