python - 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。预先感谢您的帮助!
解决方案
keras-contrib 已弃用且未维护,并且与 TF2 不兼容:
Keras-contrib 已弃用。使用 TensorFlow 插件。
tfa
在您的情况下,请改用 TensorFlow Addons ( )tfa.layers.CRF
推荐阅读
- python - 将两个列表合并到字典中
- elasticsearch - 为时间类型格式插入了 elasticsearch 异常
- java - EL 语句:${person.dog.name} 如何知道属性“person”是 Person 类型?
- python - 使用 FFMPEG 和 Python 复制相机流
- linux-kernel - 如何更改 /dev/block 或 /dev 下的块设备?
- r - 如何从 R 函数中连续返回结果?
- sql-server - 如何对长时间运行的 Web 应用程序的数据进行维护
- reactjs - 如何在 React 中访问从 mongo 数据库返回的对象?
- php - 有效地将查询转换为预期的数组 - Laravel
- php - 无法在输入框中显示全文(php)