首页 > 解决方案 > AttributeError:“节点”对象没有属性“输入掩码”

问题描述

我创建了一个网络,但收到错误:AttributeError:在用户代码中:

C:\Users\LocalAdmin\.conda\envs\newenvt\lib\site-packages\keras_contrib\metrics\crf_accuracies.py:23 crf_viterbi_accuracy  *
    mask = crf._inbound_nodes[idx].input_masks[0]

AttributeError: 'Node' object has no attribute 'input_masks'

我的代码:

import numpy as np
import pandas as pd
import tensorflow as tf
import tensorflow_hub as hub
from tqdm import tqdm
from tensorflow.keras import Input,Model
from tensorflow.keras.layers import Dense, TimeDistributed, SpatialDropout1D, Bidirectional, LSTM, Lambda
from tensorflow.keras.utils import to_categorical
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.compat.v1.keras import backend as K
from keras_contrib.layers import CRF
np.random.seed(1234567890)

#   Neural Network     
input_text = Input(shape=(max_len,), dtype=tf.string)
embedding = Lambda(ElmoEmbedding, output_shape=(max_len, 961), trainable=False)(input_text)
x = Bidirectional(LSTM(units=496, return_sequences=True, recurrent_dropout=0.1, dropout=0.1))(embedding)
model = TimeDistributed(Dense(50, activation="relu"))(x)
crf = CRF(n_tags, sparse_target=True)  # CRF layer, n_tags+1(PAD)
out = crf(model)  # output

model = Model(input_text, out)
model.compile(optimizer="rmsprop", loss=crf.loss_function, metrics=[crf.accuracy])
model.summary()
history = model.fit(np.array(x_train), y_train, batch_size=batch_size, epochs=1, verbose=1)

有谁知道如何修理它?我的 python 版本是 3.8,我的 tensorflow 版本是 2.4.0。预先感谢您的帮助!

标签: pythontensorflowkeras

解决方案


keras-contrib 已弃用且未维护,并且与 TF2 不兼容:

Keras-contrib 已弃用。使用 TensorFlow 插件。

tfa在您的情况下,请改用 TensorFlow Addons ( )tfa.layers.CRF


推荐阅读