我正在嘗試開始將 Elmo 與 Keras 和 Tensorflow 結合使用。在運行下面的代碼時,我收到一個錯誤,似乎權重未初始化。我也嘗試定義 ElmoLayer 類,因為它在此處定義(鏈接),但仍然出現相同的錯誤。
知道我做錯了什么嗎?
def ElmoEmbeddingLayer(x):
print(x.shape)
module = hub.Module("https://tfhub.dev/google/elmo/3", trainable=False)
embeddings = module(tf.squeeze(tf.cast(x, tf.string)), signature="default", as_dict=True)["elmo"]
return embeddings
def build_model():
input_text = Input(shape=(1,), dtype="string")
#embedding = ElmoEmbeddingLayer()(input_text)
embedding = Lambda(ElmoEmbeddingLayer, output_shape=(1,1024))(input_text)
dense = Dense(256, activation='relu')(embedding)
dense = Flatten()(dense)
pred = Dense(3, activation='sigmoid')(dense)
model = Model(inputs=[input_text], outputs=pred)
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()
return model
FailedPreconditionError:從容器讀取資源變數模塊/bilm/RNN_0/RNN/MultiRNNCell/Cell0/rnn/lstm_cell/projection/kernel 時出錯:localhost。這可能意味著該變數未初始化。未找到:資源 localhost/module/bilm/RNN_0/RNN/MultiRNNCell/Cell0/rnn/lstm_cell/projection/kernel/class tensorflow::Var 不存在。[[節點 lambda_1/module_apply_default/bilm/RNN_0/RNN/MultiRNNCell/Cell0/rnn/lstm_cell/projection/kernel/Read/ReadVariableOp(定義在 C:\ProgramData\Anaconda3\lib\site-packages\tensorflow_core\python\framework\ ops.py:1751)]] [Op:__inference_keras_scratch_graph_5942]
函式呼叫堆疊:keras_scratch_graph
我的 Keras 和 TF 版本:
print(keras.__version__)
2.3.1
print(tf.__version__)
2.0.0
uj5u.com熱心網友回復:
我克服了那個錯誤
1:匯入 Adam:“從 tensorflow.keras.optimizers 匯入 Adam”
2:將 Lambda 層替換為: hub.KerasLayer("https://tfhub.dev/google/elmo/3", trainable=False)
uj5u.com熱心網友回復:
請確保你已經安裝了這個版本的 python 和 TensorFlow python3.6
請檢查 tensorflow 和 keras 的兼容性。 https://mckayward.github.io/floyd-docs/guides/environments/
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/334343.html
