【问题标题】:Keras ELMO: Error while reading resource variableKeras ELMO:读取资源变量时出错
【发布时间】:2021-12-09 11:14:48
【问题描述】:

我正在尝试将 Elmo 与 Keras 和 Tensorflow 结合使用。在运行下面的代码时,我收到一个似乎权重未初始化的错误。我也尝试过定义这里定义的 ElmoLayer 类 (link),但仍然是同样的错误。

知道我做错了什么吗?

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/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) ]] [操作:__inference_keras_scratch_graph_5942]

函数调用栈:keras_scratch_graph

我的 Keras 和 TF 版本:

print(keras.__version__)
2.3.1

print(tf.__version__)
2.0.0

【问题讨论】:

    标签: tensorflow keras tensorflow-hub elmo


    【解决方案1】:

    我克服了那个错误

    1:导入的亚当:“从 tensorflow.keras.optimizers 导入亚当”

    2:将 Lambda 层替换为: hub.KerasLayer("https://tfhub.dev/google/elmo/3", trainable=False)

    【讨论】:

      【解决方案2】:

      请确保您已安装此版本的 python 和 TensorFlow python3.6

      请检查 tensorflow 和 keras 的兼容性。 https://mckayward.github.io/floyd-docs/guides/environments/

      【讨论】:

      • 你能说得更具体些吗? Keras 和 TF 版本已经过时了
      • 首先检查你的python版本而不是检查你的Keras和TF兼容性。像这样。 Python3.6 上的 Tensorflow 1.4.0 + Keras 2.0.8。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-26
      • 2022-07-04
      • 1970-01-01
      • 2018-09-10
      • 2015-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多